let input_string ?history (mb : Ed_minibuffer.minibuffer) ~title text f =
let on_complete () = () in
let on_eval () =
let s = of_utf8 mb#get_user_text in
mb#set_text "";
mb#set_active false;
f s
in
mb#clear;
mb#set_text ~fixed: (title^": ") text;
(match history with None -> () | Some h -> mb#set_history h);
mb#set_on_eval on_eval;
mb#set_on_complete on_complete;
mb#set_active true