Sfoglia il codice sorgente

ENH: Added ConvertToOutputSlashes method to convert slashes with the same policy as ConvertToOutputPath but without escaping.

Brad King 18 anni fa
parent
commit
91c2b84a92
2 ha cambiato i file con 19 aggiunte e 0 eliminazioni
  1. 17 0
      Source/cmSystemTools.cxx
  2. 2 0
      Source/cmSystemTools.h

+ 17 - 0
Source/cmSystemTools.cxx

@@ -1341,6 +1341,23 @@ std::string cmSystemTools::ConvertToOutputPath(const char* path)
 #endif
 }
 
+void cmSystemTools::ConvertToOutputSlashes(std::string& path)
+{
+#if defined(_WIN32) && !defined(__CYGWIN__)
+  if(!s_ForceUnixPaths)
+    {
+    // Convert to windows slashes.
+    std::string::size_type pos = 0;
+    while((pos = path.find('/', pos)) != std::string::npos)
+      {
+      path[pos++] = '\\';
+      }
+    }
+#else
+  static_cast<void>(path);
+#endif
+}
+
 std::string cmSystemTools::ConvertToRunCommandPath(const char* path)
 {
 #if defined(_WIN32) && !defined(__CYGWIN__)

+ 2 - 0
Source/cmSystemTools.h

@@ -289,6 +289,8 @@ public:
 
   // ConvertToOutputPath use s_ForceUnixPaths
   static std::string ConvertToOutputPath(const char* path);
+  static void ConvertToOutputSlashes(std::string& path);
+
   // ConvertToRunCommandPath does not use s_ForceUnixPaths and should
   // be used when RunCommand is called from cmake, because the 
   // running cmake needs paths to be in its format