]> git.tdb.fi Git - libs/core.git/blobdiff - source/fs/utils.cpp
Use C++11 features with containers
[libs/core.git] / source / fs / utils.cpp
index a2fe40be72ee6f39eef6909e576c5703fe9787da..e15aad4d7b8b63980e45f9b514e16f22e57ec3e7 100644 (file)
@@ -43,10 +43,10 @@ Path fix_case(const Path &path)
 {
        bool found = true;
        Path result;
-       for(Path::Iterator i=path.begin(); i!=path.end(); ++i)
+       for(const string &c: path)
        {
-               if(!found || (result.empty() && (*i=="/" || *i==".")))
-                       result /= *i;
+               if(!found || (result.empty() && (c=="/" || c==".")))
+                       result /= c;
                else
                {
                        list<string> files;
@@ -56,15 +56,15 @@ Path fix_case(const Path &path)
                                files = list_files(".");
 
                        found = false;
-                       for(list<string>::iterator j=files.begin(); (j!=files.end() && !found); ++j)
-                               if(!strcasecmp(*j,*i))
+                       for(const string &f: files)
+                               if(!strcasecmp(f, c))
                                {
-                                       result /= *j;
+                                       result /= f;
                                        found = true;
                                }
 
                        if(!found)
-                               result /= *i;
+                               result /= c;
                }
        }
 
@@ -76,8 +76,8 @@ Path relative(const Path &path, const Path &base)
        if(path.is_absolute()!=base.is_absolute())
                throw invalid_argument("FS::relative");
 
-       Path::Iterator i = path.begin();
-       Path::Iterator j = base.begin();
+       auto i = path.begin();
+       auto j = base.begin();
        for(; (i!=path.end() && j!=base.end() && *i==*j); ++i, ++j) ;
 
        Path result;
@@ -91,8 +91,8 @@ Path relative(const Path &path, const Path &base)
 
 Path common_ancestor(const Path &path1, const Path &path2)
 {
-       Path::Iterator i = path1.begin();
-       Path::Iterator j = path2.begin();
+       auto i = path1.begin();
+       auto j = path2.begin();
        Path result;
        for(; (i!=path1.end() && j!=path2.end() && *i==*j); ++i, ++j)
                result /= *i;
@@ -104,8 +104,8 @@ int descendant_depth(const Path &path, const Path &parent)
        if(path.is_absolute()!=parent.is_absolute())
                throw invalid_argument("FS::descendant_depth");
 
-       Path::Iterator i = path.begin();
-       Path::Iterator j = parent.begin();
+       auto i = path.begin();
+       auto j = parent.begin();
        for(; (i!=path.end() && j!=parent.end() && *i==*j); ++i, ++j) ;
 
        if(j!=parent.end())