summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.
*/