diff options
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | lib/options.ml | 21 |
2 files changed, 23 insertions, 4 deletions
@@ -1,6 +1,12 @@ Changes from V8.0 ================= +Environment variables + +- COQREMOTEBROWSER to set the command invoked to start the remote browser + both in Coq and coqide. Standard syntax: "%s" is the placeholder for the + URL (doc TODO) + Vernacular commands - Added "Print Ltac qualid" to print a user defined tactic (doc TODO) diff --git a/lib/options.ml b/lib/options.ml index 45f27107e..17e8af182 100644 --- a/lib/options.ml +++ b/lib/options.ml @@ -120,7 +120,20 @@ let boxed_definitions _ = !boxed_definitions (* Options for external tools *) let browser_cmd_fmt = - if Sys.os_type = "Win32" - then "C:\\PROGRA~1\\INTERN~1\\IEXPLORE ", "" - else "netscape -remote \"OpenURL(", ")\"" - + try + let coq_netscape_remote_var = "COQREMOTEBROWSER" in + let coq_netscape_remote = Sys.getenv coq_netscape_remote_var in + let i = Util.string_index_from coq_netscape_remote 0 "%s" in + let pre = String.sub coq_netscape_remote 0 i in + let post = String.sub coq_netscape_remote (i + 2) + (String.length coq_netscape_remote - (i + 2)) in + if Util.string_string_contains ~where:post ~what:"%s" then + error ("The environment variable \"" ^ + coq_netscape_remote_var ^ + "\" must contain exactly one placeholder \"%s\".") + else pre,post + with + Not_found -> + if Sys.os_type = "Win32" + then "C:\\PROGRA~1\\INTERN~1\\IEXPLORE ", "" + else "netscape -remote \"OpenURL(", ")\"" |