]> Dogcows Code - chaz/yoink/blobdiff - src/moof/resource.cc
converted image management to resource handles
[chaz/yoink] / src / moof / resource.cc
index 314f80b5db81707e73b4cb3d91300f6d5b5a8ea0..053fc0b31849e9b37991d90f671e71ee7983800d 100644 (file)
@@ -127,7 +127,7 @@ resource_ptr resource::load(const std::string& path)
 {
        std::string extension = stlplus::extension_part(path);
 
-       std::string path1 = find_file(path);
+       std::string path1 = path;
        if (!find(path1))
        {
                log_error("trying to load missing resource:", path1);
@@ -212,21 +212,35 @@ void resource::add_search_paths(const std::string& paths)
 
 bool resource::find(const std::string& path)
 {
-       std::string file = stlplus::lookup(path, search_paths_, ":");
-       log_info("found file", file, "in", search_paths_);
-       return !stlplus::lookup(path, search_paths_, ":").empty();
+       //std::string file = stlplus::lookup(path, search_paths_, ":");
+       //log_info("found file", file, "in", search_paths_);
+       //return !stlplus::lookup(path, search_paths_, ":").empty();
+       return find_file(path) != "";
 }
 
 std::string resource::find_file(const std::string& name)
 {
-       log_info("looking for", name, "in", search_paths_);
-       return stlplus::lookup(name, search_paths_, ":");
+       //log_info("looking for", name, "in", search_paths_);
+       //return stlplus::lookup(name, search_paths_, ":");
+
+       std::vector<std::string> paths;
+       boost::split(paths, search_paths_, boost::is_any_of(":"));
+
+       std::vector<std::string>::iterator it;
+       for (it = paths.begin(); it != paths.end(); ++it)
+       {
+               *it += "/";
+               *it += name;
+               log_info("looking for", name, "in", *it);
+               if (stlplus::file_exists(*it)) return *it;
+       }
+
+       return std::string();
 }
 
 FILE* resource::open_file(const std::string& path, const std::string& mode)
 {
-       std::string file = stlplus::lookup(path, search_paths_, ":");
-       return fopen(file.c_str(), mode.c_str());
+       return fopen(find_file(path).c_str(), mode.c_str());
 }
 
 
This page took 0.019039 seconds and 4 git commands to generate.