method delete_char forward =
let b = file#buffer in
let start = b#get_iter `INSERT in
let stop =
if forward then start#forward_char else start#backward_char
in
if start#equal stop then
()
else
(
b#begin_user_action ();
b#delete ~start ~stop;
b#end_user_action ()
)