summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2012-11-20 10:26:31 +0100
committerLeo Lou <louyuhong@gmail.com>2012-11-22 01:30:49 +0800
commit61c353dcfdafb87107cc5472709d229c26a8cb6c (patch)
tree987223e7c27a2c0cdbda3c7e1935c9391e32e9e9
parent7dad2b384b93889961383f1f75df5be865954639 (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.
-rw-r--r--src/rebar_port_compiler.erl6
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 =/= []].