[project @ 2005-10-20 17:12:28 by krasimir]
authorkrasimir <unknown>
Thu, 20 Oct 2005 17:12:28 +0000 (17:12 +0000)
committerkrasimir <unknown>
Thu, 20 Oct 2005 17:12:28 +0000 (17:12 +0000)
from Neil Mitchell:

On Windows, the path can be path;"c:\ghc\ghc-6.4\bin";restofpath, and
thats still a valid path with GHC in it. Cabal doesn't find ghc with
the quotes in, removing them does find it though.

System/Directory/Internals.hs

index 761b771..c763764 100644 (file)
@@ -124,15 +124,22 @@ pathParents p =
 -- | The function splits the given string to substrings
 -- using the 'searchPathSeparator'.
 parseSearchPath :: String -> [FilePath]
-parseSearchPath path = split searchPathSeparator path
+parseSearchPath path = split path
   where
-    split :: Char -> String -> [String]
-    split s =
-      case rest of
-        []      -> [chunk] 
-        _:rest' -> chunk : split c rest'
+    split :: String -> [String]
+    split s =
+      case rest' of
+        []     -> [chunk] 
+        _:rest -> chunk : split rest
       where
-        (chunk, rest) = break (==c) s
+        chunk = 
+          case chunk' of
+#ifdef mingw32_HOST_OS
+            ('\"':xs@(_:_)) | last xs == '\"' -> init xs
+#endif
+            _                                 -> chunk'
+    
+        (chunk', rest') = break (==searchPathSeparator) s
 
 --------------------------------------------------------------
 -- * Separators