fix FileIO openTempFile on Windows
When an UNC-style path is passed into openTempFile, the returned file starts with that same style of path. Which can cause problems, eg piping that filename to git failed. So, convert the output filename to be relative to the input temp directory.
This commit is contained in:
parent
aaf4dd3b9c
commit
c1e90767da
1 changed files with 6 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue