summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-10-19 14:46:50 +1000
committerPaul Davis <paul@linuxaudiosystems.com>2015-10-22 11:51:03 -0400
commit3bd928591b62443631b373a2c8a2481aa3cff764 (patch)
tree1a6e68834530b038210e439b6b7cf699d31c29d9
parentc07ea1bc73672e9f05b4e669fa0fc9ad2cd91f28 (diff)
Add PBD::Searchpath::contains method to check if a Searchpath contains a path
-rw-r--r--libs/pbd/pbd/search_path.h4
-rw-r--r--libs/pbd/search_path.cc11
2 files changed, 15 insertions, 0 deletions
diff --git a/libs/pbd/pbd/search_path.h b/libs/pbd/pbd/search_path.h
index f669d7f25a..d287782aca 100644
--- a/libs/pbd/pbd/search_path.h
+++ b/libs/pbd/pbd/search_path.h
@@ -134,6 +134,10 @@ public:
*/
LIBPBD_TEMPLATE_MEMBER_API void remove_directories (const std::vector<std::string>& paths);
+ /**
+ * @return true if Searchpath already contains path
+ */
+ LIBPBD_TEMPLATE_MEMBER_API bool contains (const std::string& path) const;
};
LIBPBD_API void export_search_path (const std::string& base_dir, const char* varname, const char* dir);
diff --git a/libs/pbd/search_path.cc b/libs/pbd/search_path.cc
index d1dc8c39f0..46292ef1f3 100644
--- a/libs/pbd/search_path.cc
+++ b/libs/pbd/search_path.cc
@@ -163,6 +163,17 @@ Searchpath::add_subdirectory_to_paths (const string& subdir)
return *this;
}
+bool
+Searchpath::contains (const string& path) const
+{
+ std::vector<std::string>::const_iterator i = find(begin(), end(), path);
+
+ if (i == end()) {
+ return false;
+ }
+ return true;
+}
+
/* This is not part of the Searchpath object, but is closely related to the
* whole idea, and we put it here for convenience.
*/