diff options
author | Björn Gustavsson <[email protected]> | 2016-04-29 10:25:39 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2016-04-29 12:16:09 +0200 |
commit | 61f421e356bd3eb659d7ba811905b2d3e1348348 (patch) | |
tree | ea6cc59e7da37f914dbd61a92d8d6009d071313e /lib | |
parent | 684bc481c72701deb07ed61ee57b4e3cf7730d04 (diff) | |
download | otp-61f421e356bd3eb659d7ba811905b2d3e1348348.tar.gz otp-61f421e356bd3eb659d7ba811905b2d3e1348348.tar.bz2 otp-61f421e356bd3eb659d7ba811905b2d3e1348348.zip |
Refactor get_name/1
Refactor get_name/1 to facilitate an optimization in the next commit.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/kernel/src/code_server.erl | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/lib/kernel/src/code_server.erl b/lib/kernel/src/code_server.erl index 2184a51396..7fefb40f10 100644 --- a/lib/kernel/src/code_server.erl +++ b/lib/kernel/src/code_server.erl @@ -615,18 +615,23 @@ exclude(Dir,Path) -> %% %% get_name(Dir) -> - get_name2(get_name1(Dir), []). - -get_name1(Dir) -> - case lists:reverse(filename:split(Dir)) of - ["ebin",DirName|_] -> DirName; - [DirName|_] -> DirName; - _ -> "" % No name ! - end. - -get_name2([$-|_],Acc) -> lists:reverse(Acc); -get_name2([H|T],Acc) -> get_name2(T,[H|Acc]); -get_name2(_,Acc) -> lists:reverse(Acc). + get_name_from_splitted(filename:split(Dir)). + +get_name_from_splitted([DirName,"ebin"]) -> + discard_after_hyphen(DirName); +get_name_from_splitted([DirName]) -> + discard_after_hyphen(DirName); +get_name_from_splitted([_|T]) -> + get_name_from_splitted(T); +get_name_from_splitted([]) -> + "". %No name. + +discard_after_hyphen("-"++_) -> + []; +discard_after_hyphen([H|T]) -> + [H|discard_after_hyphen(T)]; +discard_after_hyphen([]) -> + []. check_path(Path) -> PathChoice = init:code_path_choice(), |