aboutsummaryrefslogtreecommitdiffhomepage
path: root/ide/coqide.ml
diff options
context:
space:
mode:
Diffstat (limited to 'ide/coqide.ml')
-rw-r--r--ide/coqide.ml14
1 files changed, 12 insertions, 2 deletions
diff --git a/ide/coqide.ml b/ide/coqide.ml
index 0b6f9aa80..888f07128 100644
--- a/ide/coqide.ml
+++ b/ide/coqide.ml
@@ -746,8 +746,18 @@ let coqtop_arguments sn =
let ok = GButton.button ~stock:`OK ~packing:box#add () in
let ok_cb () =
let nargs = CString.split ' ' entry#text in
- let () = if nargs <> args then Coq.set_arguments coqtop nargs in
- dialog#destroy ()
+ if nargs <> args then
+ let failed = Coq.filter_coq_opts nargs in
+ match failed with
+ | [] ->
+ let () = Coq.set_arguments coqtop nargs in
+ dialog#destroy ()
+ | args ->
+ let args = String.concat " " args in
+ let msg = Printf.sprintf "Invalid arguments: %s" args in
+ let () = sn.messages#clear in
+ sn.messages#push Interface.Error msg
+ else dialog#destroy ()
in
let _ = entry#connect#activate ok_cb in
let _ = ok#connect#clicked ok_cb in