method cut_to_selection ?(concat : [`APPEND | `PREPEND] option) ~start ~stop () =
let b = file#buffer in
let text = b#get_text ~start ~stop () in
b#begin_user_action ();
begin
match concat with
None ->
pastable_history#add text;
GMain.selection#set_text text;
| Some p ->
let sel =
match GMain.selection#text with
None -> ""
| Some s -> s
in
let text =
match p with
`PREPEND -> text^sel
| `APPEND -> sel^text
in
pastable_history#add text;
GMain.selection#set_text text;
end;
b#delete ~start ~stop;
self#update_my_location;
b#end_user_action ();