diff options
author | ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2013-09-04 18:32:28 +0000 |
---|---|---|
committer | ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2013-09-04 18:32:28 +0000 |
commit | 5ba4818ee70fb19f22d76feeac3594f92b9bf374 (patch) | |
tree | e99e7502d7dea10c6750da10295fa5b945d632d7 /ide/coqide.ml | |
parent | 36e670c658274ce37d8d352032879db53897165c (diff) |
More robust argument setter in CoqIDE. It does not crash anymore on bad
arguments.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16761 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'ide/coqide.ml')
-rw-r--r-- | ide/coqide.ml | 14 |
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 |