Pārlūkot izejas kodu

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.
pull/3/head
José Valim pirms 12 gadiem
revīziju iesūtīja Leo Lou
vecāks
revīzija
61c353dcfd
1 mainītis faili ar 3 papildinājumiem un 3 dzēšanām
  1. +3
    -3
      src/rebar_port_compiler.erl

+ 3
- 3
src/rebar_port_compiler.erl Parādīt failu

@ -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],
class="nv">Os class="o">= class="p">[ class="nb">list_to_tuple class="p">( class="nn">re:split(S, "=", ReOpts)) || S <- os:getenv()],
%% Drop variables without a name (win32)
[T1 || {K, _V} = T1 <- Os, K =/= []].

Notiek ielāde…
Atcelt
Saglabāt