From 1797a53800b34ef5233761383916eb1ebedc9f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Fri, 31 Oct 2014 10:34:07 +0100 Subject: [PATCH] Fix `newTempDir` on Windows --- Language/Haskell/GhcMod/Cradle.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Language/Haskell/GhcMod/Cradle.hs b/Language/Haskell/GhcMod/Cradle.hs index 112528a..a42fac6 100644 --- a/Language/Haskell/GhcMod/Cradle.hs +++ b/Language/Haskell/GhcMod/Cradle.hs @@ -14,7 +14,7 @@ import Control.Exception.IOChoice ((||>)) import Control.Monad (filterM) import Data.List (isSuffixOf) import System.Directory (getCurrentDirectory, getDirectoryContents, doesFileExist, getTemporaryDirectory, removeDirectoryRecursive) -import System.FilePath ((), takeDirectory) +import System.FilePath ((),takeDirectory,pathSeparators,splitDrive) import System.IO.Temp @@ -34,8 +34,9 @@ newTempDir :: FilePath -> IO FilePath newTempDir dir = flip createTempDirectory uniqPathName =<< getTemporaryDirectory where - uniqPathName = "ghc-mod" ++ map escapeSlash dir - escapeSlash '/' = '-' + uniqPathName = "ghc-mod" ++ map escapeSlash (snd $ splitDrive dir) + + escapeSlash c | c `elem` pathSeparators = '-' escapeSlash c = c cleanupCradle :: Cradle -> IO ()