Fix a crash when merging files in the git-annex branch that contain invalid utf8.

The crash actually occurred when writing out the file, which was done to a
handle that had not had fileSystemEncoding applied to it.
This commit is contained in:
Joey Hess 2012-10-12 12:19:30 -04:00
parent aa8b15d966
commit e05c21cb73
4 changed files with 17 additions and 5 deletions

View file

@ -64,17 +64,24 @@ readProcessEnv cmd args environ =
, env = environ
}
{- Writes stdout to a process, returns its output, and also allows specifying
- the environment. -}
{- Writes a string to a process on its stdout,
- returns its output, and also allows specifying the environment.
-
-
-}
writeReadProcessEnv
:: FilePath
-> [String]
-> Maybe [(String, String)]
-> String
-> String
-> (Maybe (Handle -> IO ()))
-> IO String
writeReadProcessEnv cmd args environ input = do
writeReadProcessEnv cmd args environ input adjusthandle = do
(Just inh, Just outh, _, pid) <- createProcess p
maybe (return ()) (\a -> a inh) adjusthandle
maybe (return ()) (\a -> a outh) adjusthandle
-- fork off a thread to start consuming the output
output <- hGetContents outh
outMVar <- newEmptyMVar