diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2014-06-19 19:39:27 +1000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-06-25 12:40:10 -0400 |
commit | 077c09b1055d183834c61ead6cd506302ce838e4 (patch) | |
tree | 626cf12a550b268bcc4f3222b799d31e6cb05297 /libs/pbd/file_utils.cc | |
parent | d9a7d419b2858f5a2ce36ae5321c998d766be026 (diff) |
Add new function PBD::find_files_matching_pattern
This new function is intended to replace the three existing
PBD::find_matching_files_* functions.
The order of parameters matches find_files_matching_regex and
find_files_matching_filter
Diffstat (limited to 'libs/pbd/file_utils.cc')
-rw-r--r-- | libs/pbd/file_utils.cc | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/libs/pbd/file_utils.cc b/libs/pbd/file_utils.cc index 26900be289..511e046de3 100644 --- a/libs/pbd/file_utils.cc +++ b/libs/pbd/file_utils.cc @@ -110,14 +110,15 @@ get_files_in_directory (const std::string& directory_path, vector<string>& resul } void -find_matching_files_in_directory (const std::string& directory, - const Glib::PatternSpec& pattern, - vector<std::string>& result) +find_files_matching_pattern (vector<string>& result, + const Searchpath& paths, + const Glib::PatternSpec& pattern) { vector<string> tmp_files; - get_files_in_directory (directory, tmp_files); - result.reserve(tmp_files.size()); + for (vector<string>::const_iterator i = paths.begin(); i != paths.end(); ++i) { + get_files_in_directory (*i, tmp_files); + } for (vector<string>::iterator file_iter = tmp_files.begin(); file_iter != tmp_files.end(); @@ -133,6 +134,15 @@ find_matching_files_in_directory (const std::string& directory, result.push_back(*file_iter); } + +} + +void +find_matching_files_in_directory (const std::string& directory, + const Glib::PatternSpec& pattern, + vector<std::string>& result) +{ + find_files_matching_pattern (result, directory, pattern); } void @@ -140,12 +150,7 @@ find_matching_files_in_directories (const vector<std::string>& paths, const Glib::PatternSpec& pattern, vector<std::string>& result) { - for (vector<std::string>::const_iterator path_iter = paths.begin(); - path_iter != paths.end(); - ++path_iter) - { - find_matching_files_in_directory (*path_iter, pattern, result); - } + find_files_matching_pattern (result, paths, pattern); } void @@ -153,7 +158,7 @@ find_matching_files_in_search_path (const Searchpath& search_path, const Glib::PatternSpec& pattern, vector<std::string>& result) { - find_matching_files_in_directories (search_path, pattern, result); + find_files_matching_pattern (result, search_path, pattern); } bool |