]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Resource.cc
refactoring needed for win32 crash
[chaz/yoink] / src / Moof / Resource.cc
index ff4213ec7d3e04e877704a949313f72f00df2e84..ec940257045ea6650bf479f197eed0df9f91b60c 100644 (file)
@@ -38,28 +38,43 @@ namespace Mf {
 
 
 // static member
 
 
 // static member
-std::vector<std::string> Resource::searchPaths_;
+std::vector<std::string> Resource::gSearchPaths;
 
 
 
 
-void Resource::addSearchPath(const std::string& directory)
+void Resource::addSearchPaths(const std::string& path)
 {
 {
-       std::string path(directory);
+       std::vector<std::string> paths;
+       boost::split(paths, path, boost::is_any_of(":"));
 
 
-       ASSERT(path.length() > 0 && "empty search path string");
+       addSearchPaths(paths);
+}
+
+void Resource::addSearchPaths(const std::vector<std::string>& path)
+{
+       std::vector<std::string>::const_iterator it;
 
 
-       // add a slash if there isn't one already
-       if (*path.rbegin() != '/')
+       for (it = path.begin(); it != path.end(); ++it)
        {
        {
-               path += '/';
-       }
+               std::string onePath(*it);
+
+               ASSERT(!onePath.empty() && "empty search path string");
+
+               // add a slash if there isn't one already
+               if (*onePath.rbegin() != '/')
+               {
+                       onePath += '/';
+               }
 
 #if defined(_WIN32) || defined(__WIN32__)
 
 #if defined(_WIN32) || defined(__WIN32__)
-       boost::replace_all(path, "/", "\\");
+               boost::replace_all(onePath, "/", "\\");
 #endif
 
 #endif
 
-       searchPaths_.push_back(path);
+               gSearchPaths.push_back(onePath);
+               logInfo << "added search path " << onePath << std::endl;
+       }
 }
 
 }
 
+
 std::string Resource::getPath(const std::string& name)
 {
        std::vector<std::string>::iterator it;
 std::string Resource::getPath(const std::string& name)
 {
        std::vector<std::string>::iterator it;
@@ -70,7 +85,7 @@ std::string Resource::getPath(const std::string& name)
        boost::replace_all(path, "/", "\\");
 #endif
 
        boost::replace_all(path, "/", "\\");
 #endif
 
-       for (it = searchPaths_.begin(); it != searchPaths_.end(); ++it)
+       for (it = gSearchPaths.begin(); it != gSearchPaths.end(); ++it)
        {
                std::string fullPath(*it);
                fullPath += path;
        {
                std::string fullPath(*it);
                fullPath += path;
This page took 0.020817 seconds and 4 git commands to generate.