diff options
author | Siri Hansen <[email protected]> | 2017-09-07 16:16:01 +0200 |
---|---|---|
committer | Siri Hansen <[email protected]> | 2017-09-07 16:16:01 +0200 |
commit | b569db7fd80de6f6f049797fa7676bdfbe55cc4f (patch) | |
tree | ff24ace33a45b2dc75f9d955a88bc92fdc2f2acc /lib/tools/src/xref_utils.erl | |
parent | 8e3baffd206247d3023c3e00d4d0849c23f3fc58 (diff) | |
parent | 87fa9801618397087d6a7b521e370506c5bfff91 (diff) | |
download | otp-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.erl | 13 |
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 |