23 #include <glibmm/miscutils.h>
33 Searchpath::Searchpath ()
38 Searchpath::Searchpath (
const string& path)
40 vector<std::string> tmp;
42 if (
tokenize (path,
string(G_SEARCHPATH_SEPARATOR_S), std::back_inserter (tmp))) {
43 add_directories (tmp);
47 Searchpath::Searchpath (
const vector<std::string>& paths)
49 add_directories (paths);
55 if (directory_path.empty()) {
59 for (vector<std::string>::iterator i = begin(); i != end();) {
60 if (*i == directory_path) {
69 Searchpath::remove_directories (
const vector<std::string>& paths)
71 for(vector<std::string>::const_iterator i = paths.begin(); i != paths.end(); ++i) {
77 Searchpath::add_directory (
const std::string& directory_path)
79 if (directory_path.empty()) {
82 for (vector<std::string>::const_iterator i = begin(); i != end(); ++i) {
83 if (*i == directory_path) {
87 push_back(directory_path);
91 Searchpath::add_directories (
const vector<std::string>& paths)
93 for(vector<std::string>::const_iterator i = paths.begin(); i != paths.end(); ++i) {
103 for (vector<std::string>::const_iterator i = begin(); i != end(); ++i) {
105 path += G_SEARCHPATH_SEPARATOR;
108 path = path.substr (0, path.length() - 1);
116 insert(end(), spath.begin(), spath.end());
121 Searchpath::operator+= (
const std::string& directory_path)
123 add_directory (directory_path);
128 Searchpath::operator+ (
const std::string& directory_path)
130 add_directory (directory_path);
138 insert(end(), spath.begin(), spath.end());
145 remove_directories (spath);
150 Searchpath::operator-= (
const std::string& directory_path)
158 Searchpath::add_subdirectory_to_paths (
const string& subdir)
160 for (vector<std::string>::iterator i = begin(); i != end(); ++i) {
163 *i = Glib::build_filename (*i, subdir);
177 const char * cstr = g_getenv (varname);
181 path += G_SEARCHPATH_SEPARATOR;
188 g_setenv (varname, path.c_str(), 1);
std::string to_string(T t, std::ios_base &(*f)(std::ios_base &))
void remove_directory(const std::string &dir)
unsigned int tokenize(const StringType &str, const StringType &delims, Iter it, bool strip_whitespace=false)
void export_search_path(const string &base_dir, const char *varname, const char *dir)