diff --git a/Utility/FileIO.hs b/Utility/FileIO.hs index 4b12b2ba0e..6a22025963 100644 --- a/Utility/FileIO.hs +++ b/Utility/FileIO.hs @@ -35,7 +35,9 @@ import System.File.OsPath -- https://github.com/haskell/file-io/issues/39 import Utility.Path.Windows import Utility.OsPath +import System.OsPath import System.IO (IO, Handle, IOMode) +import Prelude (return) import qualified System.File.OsPath as O import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L @@ -84,7 +86,10 @@ appendFile' f b = do openTempFile :: OsPath -> OsPath -> IO (OsPath, Handle) openTempFile p s = do p' <- toOsPath <$> convertToWindowsNativeNamespace (fromOsPath p) - O.openTempFile p' s + (t, h) <- O.openTempFile p' s + -- Avoid returning mangled path from convertToWindowsNativeNamespace + let t' = p takeFileName t + return (t', h) #endif #else diff --git a/git-annex.cabal b/git-annex.cabal index b610cdf65c..b662fe482e 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -333,14 +333,12 @@ Executable git-annex P2P.Http.State if flag(OsPath) - -- Currently this build flag does not pass the test suite on Windows - if (! os(windows)) - Build-Depends: - os-string (>= 2.0.0), - directory (>= 1.3.8.3), - filepath (>= 1.5.2.0), - file-io (>= 0.1.3) - CPP-Options: -DWITH_OSPATH + Build-Depends: + os-string (>= 2.0.0), + directory (>= 1.3.8.3), + filepath (>= 1.5.2.0), + file-io (>= 0.1.3) + CPP-Options: -DWITH_OSPATH if (os(windows)) Build-Depends: