summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/erlang/files/patch-lib_gs_src_tool__utils.erl88
-rw-r--r--lang/erlang14/files/patch-lib_gs_src_tool__utils.erl88
2 files changed, 176 insertions, 0 deletions
diff --git a/lang/erlang/files/patch-lib_gs_src_tool__utils.erl b/lang/erlang/files/patch-lib_gs_src_tool__utils.erl
new file mode 100644
index 000000000000..4f4482bc45b1
--- /dev/null
+++ b/lang/erlang/files/patch-lib_gs_src_tool__utils.erl
@@ -0,0 +1,88 @@
+
+$FreeBSD$
+
+--- lib/gs/src/tool_utils.erl.orig Thu Sep 4 23:01:37 2003
++++ lib/gs/src/tool_utils.erl Fri Sep 5 00:16:20 2003
+@@ -27,6 +27,9 @@
+ -export([file_dialog/1]).
+ -export([notify/2, confirm/2, confirm_yesno/2, request/2]).
+
++%% Browser executable list (openURL command line protocol required)
++-define(BROWSERS, ["netscape", "mozilla", "MozillaFirebird", "opera"]).
++
+ %%----------------------------------------------------------------------
+ %% open_help(GS, File)
+ %% GS = gsobj() (GS root object returned by gs:start/0,1)
+@@ -51,7 +54,7 @@
+ local ->
+ Cmd = case os:type() of
+ {unix,_AnyType} ->
+- "netscape -remote \"openURL(file:" ++ File ++ ")\"";
++ unix_url_command("file:" ++ File);
+
+ {win32,_AnyType} ->
+ "start " ++ filename:nativename(File)
+@@ -62,7 +65,7 @@
+ remote ->
+ Cmd = case os:type() of
+ {unix,_AnyType} ->
+- "netscape -remote \"openURL(" ++ File ++ ")\"";
++ unix_url_command(File);
+
+ {win32,_AnyType} ->
+ "netscape.exe -h " ++ regexp:gsub(File,"\\\\","/")
+@@ -307,3 +310,54 @@
+ [Last];
+ insert_newlines(Other) ->
+ Other.
++
++%% find_browser(BrowserList) => string() | false
++%% BrowserList - [string()]
++%% Given a list of basenames, find the first available executable.
++
++find_browser([]) ->
++ false;
++
++find_browser([H | T]) ->
++ case os:find_executable(H) of
++ false ->
++ find_browser(T);
++ Browser ->
++ Browser
++ end.
++
++%% unix_url_command(URL) => string()
++%% URL - string()
++%% Open an URL, using a browser which supports the openURL command
++%% line protocol. If no browser is found, the empty string will be
++%% returned.
++
++unix_url_command(URL) ->
++ Template = "BROWSER -remote \"openURL(" ++ URL ++ ")\" || BROWSER " ++ URL ++ "&",
++
++ case os:getenv("BROWSER") of
++ false ->
++ %% look for a compatible browser
++ case find_browser(?BROWSERS) of
++ false ->
++ "";
++ Browser ->
++ case regexp:gsub(Template, "BROWSER", Browser) of
++ {ok, Command, 0} ->
++ %% Template does not contain "BROWSER" placeholder
++ "";
++ {ok, Command, _} ->
++ Command
++ end
++ end;
++
++ Value ->
++ case regexp:gsub(Template, "BROWSER", Value) of
++ {ok, Command2, 0} ->
++ %% no placeholder
++ "";
++ {ok, Command2, _} ->
++ Command2
++ end
++ end.
++
diff --git a/lang/erlang14/files/patch-lib_gs_src_tool__utils.erl b/lang/erlang14/files/patch-lib_gs_src_tool__utils.erl
new file mode 100644
index 000000000000..4f4482bc45b1
--- /dev/null
+++ b/lang/erlang14/files/patch-lib_gs_src_tool__utils.erl
@@ -0,0 +1,88 @@
+
+$FreeBSD$
+
+--- lib/gs/src/tool_utils.erl.orig Thu Sep 4 23:01:37 2003
++++ lib/gs/src/tool_utils.erl Fri Sep 5 00:16:20 2003
+@@ -27,6 +27,9 @@
+ -export([file_dialog/1]).
+ -export([notify/2, confirm/2, confirm_yesno/2, request/2]).
+
++%% Browser executable list (openURL command line protocol required)
++-define(BROWSERS, ["netscape", "mozilla", "MozillaFirebird", "opera"]).
++
+ %%----------------------------------------------------------------------
+ %% open_help(GS, File)
+ %% GS = gsobj() (GS root object returned by gs:start/0,1)
+@@ -51,7 +54,7 @@
+ local ->
+ Cmd = case os:type() of
+ {unix,_AnyType} ->
+- "netscape -remote \"openURL(file:" ++ File ++ ")\"";
++ unix_url_command("file:" ++ File);
+
+ {win32,_AnyType} ->
+ "start " ++ filename:nativename(File)
+@@ -62,7 +65,7 @@
+ remote ->
+ Cmd = case os:type() of
+ {unix,_AnyType} ->
+- "netscape -remote \"openURL(" ++ File ++ ")\"";
++ unix_url_command(File);
+
+ {win32,_AnyType} ->
+ "netscape.exe -h " ++ regexp:gsub(File,"\\\\","/")
+@@ -307,3 +310,54 @@
+ [Last];
+ insert_newlines(Other) ->
+ Other.
++
++%% find_browser(BrowserList) => string() | false
++%% BrowserList - [string()]
++%% Given a list of basenames, find the first available executable.
++
++find_browser([]) ->
++ false;
++
++find_browser([H | T]) ->
++ case os:find_executable(H) of
++ false ->
++ find_browser(T);
++ Browser ->
++ Browser
++ end.
++
++%% unix_url_command(URL) => string()
++%% URL - string()
++%% Open an URL, using a browser which supports the openURL command
++%% line protocol. If no browser is found, the empty string will be
++%% returned.
++
++unix_url_command(URL) ->
++ Template = "BROWSER -remote \"openURL(" ++ URL ++ ")\" || BROWSER " ++ URL ++ "&",
++
++ case os:getenv("BROWSER") of
++ false ->
++ %% look for a compatible browser
++ case find_browser(?BROWSERS) of
++ false ->
++ "";
++ Browser ->
++ case regexp:gsub(Template, "BROWSER", Browser) of
++ {ok, Command, 0} ->
++ %% Template does not contain "BROWSER" placeholder
++ "";
++ {ok, Command, _} ->
++ Command
++ end
++ end;
++
++ Value ->
++ case regexp:gsub(Template, "BROWSER", Value) of
++ {ok, Command2, 0} ->
++ %% no placeholder
++ "";
++ {ok, Command2, _} ->
++ Command2
++ end
++ end.
++