diff options
author | Hans Bolinder <[email protected]> | 2018-01-15 12:37:18 +0100 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2018-01-15 12:37:18 +0100 |
commit | 43902ae7e7c03f174e4f1c2620f9d1b73a56ec65 (patch) | |
tree | ba168340f2cc55644bd67bf56f4482bee6b4dac0 /lib/stdlib/src/filelib.erl | |
parent | 030070142f4128213ac1052319d19ad1926996b3 (diff) | |
parent | 39dbc655f6aa2a971019feccefa3a27273305091 (diff) | |
download | otp-43902ae7e7c03f174e4f1c2620f9d1b73a56ec65.tar.gz otp-43902ae7e7c03f174e4f1c2620f9d1b73a56ec65.tar.bz2 otp-43902ae7e7c03f174e4f1c2620f9d1b73a56ec65.zip |
Merge branch 'maint'
* maint:
stdlib: Correct a filelib test case
stdlib: Let filelib:find_source() search subdirs
Diffstat (limited to 'lib/stdlib/src/filelib.erl')
-rw-r--r-- | lib/stdlib/src/filelib.erl | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/lib/stdlib/src/filelib.erl b/lib/stdlib/src/filelib.erl index 0f90b3fc33..de839be5cf 100644 --- a/lib/stdlib/src/filelib.erl +++ b/lib/stdlib/src/filelib.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1997-2017. All Rights Reserved. +%% Copyright Ericsson AB 1997-2018. 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. @@ -582,17 +582,16 @@ default_search_rules() -> {"", ".c", c_source_search_rules()}, {"", ".in", basic_source_search_rules()}, %% plain old directory rules, backwards compatible - {"", ""}, - {"ebin","src"}, - {"ebin","esrc"} - ]. + {"", ""}] ++ erl_source_search_rules(). basic_source_search_rules() -> (erl_source_search_rules() ++ c_source_search_rules()). erl_source_search_rules() -> - [{"ebin","src"}, {"ebin","esrc"}]. + [{"ebin","src"}, {"ebin","esrc"}, + {"ebin",filename:join("src", "*")}, + {"ebin",filename:join("esrc", "*")}]. c_source_search_rules() -> [{"priv","c_src"}, {"priv","src"}, {"bin","c_src"}, {"bin","src"}, {"", "src"}]. @@ -672,8 +671,16 @@ try_dir_rule(Dir, Filename, From, To) -> Src = filename:join(NewDir, Filename), case is_regular(Src) of true -> {ok, Src}; - false -> error + false -> find_regular_file(wildcard(Src)) end; false -> error end. + +find_regular_file([]) -> + error; +find_regular_file([File|Files]) -> + case is_regular(File) of + true -> {ok, File}; + false -> find_regular_file(Files) + end. |