method private write_file =
let rec do_write ~fail_if_newer =
try
file#write_file ~fail_if_newer ();
let msg = Printf.sprintf "Wrote %s"
(utf8_of_filename ~full: true file#filename)
in
Ed_misc.display_message msg
with
Newer_file_exists _ ->
let do_it () = do_write ~fail_if_newer: false in
Ed_misc.confirm self#minibuffer
(Printf.sprintf "%s was edited since last visited; write anyway ?"
(utf8_of_filename ~full: true file#filename))
do_it
| Failure s
| Sys_error s
| Glib.Convert.Error (_,s) ->
Ed_misc.error_message (Ed_misc.to_utf8 s)
in
do_write ~fail_if_newer: true