let open_view topwin _ ?(attributes=[]) _ =
match !view with
| Some v -> `Use_view (v:> Ed_view.gui_view)
| None ->
let v = new outputview ~attributes topwin on_view_destroy in
ignore(v#source_view#connect#destroy (fun () -> on_view_destroy v));
view := Some v;
v#print (Buffer.contents delayed_text);
Buffer.reset delayed_text;
`New_view (v :> Ed_view.gui_view)