summaryrefslogtreecommitdiff
path: root/libs/pbd/file_utils.cc
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2014-06-19 19:39:27 +1000
committerPaul Davis <paul@linuxaudiosystems.com>2014-06-25 12:40:10 -0400
commit077c09b1055d183834c61ead6cd506302ce838e4 (patch)
tree626cf12a550b268bcc4f3222b799d31e6cb05297 /libs/pbd/file_utils.cc
parentd9a7d419b2858f5a2ce36ae5321c998d766be026 (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.cc29
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