aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tools/src/xref_utils.erl
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2017-09-07 16:16:01 +0200
committerSiri Hansen <[email protected]>2017-09-07 16:16:01 +0200
commitb569db7fd80de6f6f049797fa7676bdfbe55cc4f (patch)
treeff24ace33a45b2dc75f9d955a88bc92fdc2f2acc /lib/tools/src/xref_utils.erl
parent8e3baffd206247d3023c3e00d4d0849c23f3fc58 (diff)
parent87fa9801618397087d6a7b521e370506c5bfff91 (diff)
downloadotp-b569db7fd80de6f6f049797fa7676bdfbe55cc4f.tar.gz
otp-b569db7fd80de6f6f049797fa7676bdfbe55cc4f.tar.bz2
otp-b569db7fd80de6f6f049797fa7676bdfbe55cc4f.zip
Merge branch 'siri/unicode-merge' into maint
* siri/unicode-merge: (28 commits) stdlib: use 'unicode' option for regexp in ets ct: use 'unicode' option for regexps syntax_tools: add 'unicode' option to re:run for matching paths kernel: update simple error logger to print Unicode strings stdlib: add Unicode translation modifier in error_logger_tty_h wx: add Unicode translation modifier to wx_object stdlib: add Unicode translation modifier in debug format funs sasl: set encoding of SASL report log stdlib: use Unicode translation modifier in error_logger_file_h observer: Improve handling of Unicode mnesia: Improve handling of Unicode stdlib : Improve handling of Unicode kernel: Improve handling of Unicode hipe: Improve handling of Unicode edoc: Improve handling of Unicode syntax_tools: Improve handling of Unicode dialyzer: Improve handling of Unicode et: Improve handling of Unicode xref: Improve handling of Unicode fprof: Modify handling of Unicode eprof: Improve handling of Unicode eunit: Improve handling of Unicode stdlib: Improve handling of Unicode in escript stdlib: Improve handling of Unicode in edlin_expand stdlib: Modify handling of Unicode in proc_lib sasl: Improve handling of Unicode edoc: Improve handling of Unicode debugger: Improve handling of Unicode OTP-14462 OTP-14464
Diffstat (limited to 'lib/tools/src/xref_utils.erl')
-rw-r--r--lib/tools/src/xref_utils.erl13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/tools/src/xref_utils.erl b/lib/tools/src/xref_utils.erl
index b0c168e018..02e207d40c 100644
--- a/lib/tools/src/xref_utils.erl
+++ b/lib/tools/src/xref_utils.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2000-2016. All Rights Reserved.
+%% Copyright Ericsson AB 2000-2017. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -638,14 +638,14 @@ neighbours([], G, Fun, VT, L, _V, Vs) ->
neighbours(Vs, G, Fun, VT, L).
match_list(L, RExpr) ->
- {ok, Expr} = re:compile(RExpr),
+ {ok, Expr} = re:compile(RExpr, [unicode]),
filter(fun(E) -> match(E, Expr) end, L).
match_one(VarL, Con, Col) ->
select_each(VarL, fun(E) -> Con =:= element(Col, E) end).
match_many(VarL, RExpr, Col) ->
- {ok, Expr} = re:compile(RExpr),
+ {ok, Expr} = re:compile(RExpr, [unicode]),
select_each(VarL, fun(E) -> match(element(Col, E), Expr) end).
match(I, Expr) when is_integer(I) ->
@@ -653,7 +653,12 @@ match(I, Expr) when is_integer(I) ->
{match, [{0,length(S)}]} =:= re:run(S, Expr, [{capture, first}]);
match(A, Expr) when is_atom(A) ->
S = atom_to_list(A),
- {match, [{0,length(S)}]} =:= re:run(S, Expr, [{capture, first}]).
+ case re:run(S, Expr, [{capture, first}]) of
+ {match, [{0,Size}]} ->
+ Size =:= byte_size(unicode:characters_to_binary(S));
+ _ ->
+ false
+ end.
select_each([{Mod,Funs} | L], Pred) ->
case filter(Pred, Funs) of