diff options
author | Stavros Aronis <[email protected]> | 2018-10-26 23:01:49 +0200 |
---|---|---|
committer | Stavros Aronis <[email protected]> | 2018-10-26 23:08:57 +0200 |
commit | 1acc5db0b50e66fdc72a1fbcf3ea7c3f2bc239c8 (patch) | |
tree | 7a503f526e08262f747e342333a33e8bc0e43ad7 /lib | |
parent | c37f7a2215646c85c1ae12303f07bc9bc27b75ae (diff) | |
download | otp-1acc5db0b50e66fdc72a1fbcf3ea7c3f2bc239c8.tar.gz otp-1acc5db0b50e66fdc72a1fbcf3ea7c3f2bc239c8.tar.bz2 otp-1acc5db0b50e66fdc72a1fbcf3ea7c3f2bc239c8.zip |
Make reltool correctly handle Windows 'ERL_LIBS'
Without this patch reltool would try to split strings like "C:\foo"
into ["C","\foo"].
Diffstat (limited to 'lib')
-rw-r--r-- | lib/reltool/src/reltool_utils.erl | 13 | ||||
-rw-r--r-- | lib/reltool/test/reltool_server_SUITE.erl | 16 |
2 files changed, 26 insertions, 3 deletions
diff --git a/lib/reltool/src/reltool_utils.erl b/lib/reltool/src/reltool_utils.erl index 060a0912f9..2afa386cb3 100644 --- a/lib/reltool/src/reltool_utils.erl +++ b/lib/reltool/src/reltool_utils.erl @@ -47,6 +47,9 @@ call/2, cast/2, reply/3]). +%% For testing +-export([erl_libs/2]). + -include_lib("kernel/include/file.hrl"). -include_lib("wx/include/wx.hrl"). -include("reltool.hrl"). @@ -55,7 +58,15 @@ root_dir() -> code:root_dir(). erl_libs() -> - string:lexemes(os:getenv("ERL_LIBS", ""), ":;"). + erl_libs(os:getenv("ERL_LIBS", ""), os:type()). + +erl_libs(ErlLibs, OsType) when is_list(ErlLibs) -> + Sep = + case OsType of + {win32, _} -> ";"; + _ -> ":" + end, + string:lexemes(ErlLibs, Sep). lib_dirs(Dir) -> case erl_prim_loader:list_dir(Dir) of diff --git a/lib/reltool/test/reltool_server_SUITE.erl b/lib/reltool/test/reltool_server_SUITE.erl index 4e1937d479..e7a9c82777 100644 --- a/lib/reltool/test/reltool_server_SUITE.erl +++ b/lib/reltool/test/reltool_server_SUITE.erl @@ -142,7 +142,8 @@ all() -> use_selected_vsn, use_selected_vsn_relative_path, non_standard_vsn_id, - undefined_regexp]. + undefined_regexp, + windows_erl_libs]. groups() -> []. @@ -2546,10 +2547,21 @@ undefined_regexp(_Config) -> ok. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Checks that reltool_utils can correctly read Windows ERL_LIBS + +windows_erl_libs(_Config) -> + WinErlLibs = + "C:\Program Files\Erlang Libs;C:\Program Files\More Erlang Libs", + Ret = reltool_utils:erl_libs(WinErlLibs, {win32, nt}), + ?m(["C:\Program Files\Erlang Libs","C:\Program Files\More Erlang Libs"], + Ret), + ok. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Library functions erl_libs() -> - string:lexemes(os:getenv("ERL_LIBS", ""), ":;"). + reltool_utils:erl_libs(). datadir(Config) -> %% Removes the trailing slash... |