Sfoglia il codice sorgente

ENH: handle // in the path

Bill Hoffman 23 anni fa
parent
commit
7c9c1c599d
1 ha cambiato i file con 6 aggiunte e 1 eliminazioni
  1. 6 1
      Source/cmSystemTools.cxx

+ 6 - 1
Source/cmSystemTools.cxx

@@ -702,6 +702,12 @@ void cmSystemTools::ConvertToUnixSlashes(std::string& path)
     path[pos] = '/';
     pos++;
     }
+  // Remove all // from the path just like most unix shells
+  while((pos = path.find("//", 0)) != std::string::npos)
+    {
+    cmSystemTools::ReplaceString(path, "//", "/");
+    }
+  
   // remove any trailing slash
   if(path.size() && path[path.size()-1] == '/')
     {
@@ -1700,7 +1706,6 @@ void cmSystemTools::SplitProgramPath(const char* in_name,
       dir = "";
       }
     }
-  
   if((dir != "") && !cmSystemTools::FileIsDirectory(dir.c_str()))
     {
     std::string oldDir = in_name;