aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--CHANGES6
-rw-r--r--lib/options.ml21
2 files changed, 23 insertions, 4 deletions
diff --git a/CHANGES b/CHANGES
index 52adfe4aa..c47a6e7a7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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(", ")\""