let input_command_arg mb ?history ~title f com args =
let ask ?err text =
let f s =
let com = Printf.sprintf "%s %s" com s in
Cam_commands.eval_command com
in
let title = Printf.sprintf "%s%s"
(match err with None -> "" | Some s -> "["^s^"] ")
title
in
input_string ?history mb ~title text f
in
let len = Array.length args in
if len > 0 then
try f args.(0)
with Invalid_argument err -> ask ~err args.(0)
else
ask ""