let create_buffer ?(attributes=[]) filename =
let mes = Printf.sprintf "creating buffer for %s" filename in
Ed_misc.display_message mes;
let b = new my_buffer () in
b#set_max_undo_levels Ed_sourceview_rc.max_undo_levels#get;
b#place_cursor b#start_iter;
b#set_highlight true;
let name = get_fresh_buffer_name (Filename.basename filename) in
let file = new buffered_file ~attributes ~name ~filename b in
buffers := file :: !buffers;
make_buffer_first_in_history file#name;
file