diff options
author | José Valim <jose.valim@plataformatec.com.br> | 2012-11-20 10:26:31 +0100 |
---|---|---|
committer | Leo Lou <louyuhong@gmail.com> | 2012-11-22 01:30:49 +0800 |
commit | 61c353dcfdafb87107cc5472709d229c26a8cb6c (patch) | |
tree | 987223e7c27a2c0cdbda3c7e1935c9391e32e9e9 /src | |
parent | 7dad2b384b93889961383f1f75df5be865954639 (diff) |
Support environment vars with unicode characters
The results returned by os:getenv() may contain unicode characters.
That said, we need to explicitly allow unicode when splitting the
environment information, otherwise badarg will be raised causing all
rebar commands to fail until the environment variable is removed.
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar_port_compiler.erl | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/rebar_port_compiler.erl b/src/rebar_port_compiler.erl index 70ee308..06a79bc 100644 --- a/src/rebar_port_compiler.erl +++ b/src/rebar_port_compiler.erl @@ -399,7 +399,7 @@ expand_vars_loop([], Recurse, Vars, Count) -> expand_vars_loop(Recurse, [], Vars, Count-1); expand_vars_loop([{K, V} | Rest], Recurse, Vars, Count) -> %% Identify the variables that need expansion in this value - ReOpts = [global, {capture, all_but_first, list}], + ReOpts = [global, {capture, all_but_first, list}, unicode], case re:run(V, "\\\${?(\\w+)}?", ReOpts) of {match, Matches} -> %% Identify the unique variables that need to be expanded @@ -472,8 +472,8 @@ erts_dir() -> lists:concat([code:root_dir(), "/erts-", erlang:system_info(version)]). os_env() -> - Os = [list_to_tuple(re:split(S, "=", [{return, list}, {parts, 2}])) || - S <- os:getenv()], + ReOpts = [{return, list}, {parts, 2}, unicode], + Os = [list_to_tuple(re:split(S, "=", ReOpts)) || S <- os:getenv()], %% Drop variables without a name (win32) [T1 || {K, _V} = T1 <- Os, K =/= []]. |