diff options
-rw-r--r-- | libs/pbd/pbd/search_path.h | 4 | ||||
-rw-r--r-- | libs/pbd/search_path.cc | 11 |
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. */ |