let open_file topwin active_view ?(attributes=[]) filename =
let file = get_buffer ~attributes filename in
match !active_sourceview with
None -> `New_view (create_view ~attributes topwin file :> Ed_view.gui_view)
| Some v ->
if topwin#contains_view (v :> Ed_view.gui_view) then
begin
if v#file#name = file#name then
match get_att "location" attributes with
None -> ()
| Some _ -> v#update_my_location
else
v#set_file ~focus_in: true file;
`Use_view (v :> Ed_view.gui_view)
end
else
`New_view (create_view ~attributes topwin file :> Ed_view.gui_view)