diff options
author | Ben Gamari <ben@smart-cactus.org> | 2017-05-12 14:36:08 -0400 |
---|---|---|
committer | Alex Biehl <alexbiehl@gmail.com> | 2017-05-12 20:36:08 +0200 |
commit | b7d7b7acd42cbe424afde3c8a5a59a0706445343 (patch) | |
tree | 77853349215ae8b70abbcb1d484859953840203d | |
parent | a0c4790e15a2d3fab8d830eee8fcd639fe6d39c9 (diff) |
Haddock: Fix broken lazy IO in prologue reading (#615)
We previously used withFile in conjunction with hGetContents. The list returned
by the latter wasn't completely forced by the time we left the withFile block,
meaning that we would try to read from a closed handle.
-rw-r--r-- | haddock-api/src/Haddock.hs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/haddock-api/src/Haddock.hs b/haddock-api/src/Haddock.hs index 6af0874a..637ccf2b 100644 --- a/haddock-api/src/Haddock.hs +++ b/haddock-api/src/Haddock.hs @@ -540,9 +540,10 @@ getPrologue :: DynFlags -> [Flag] -> IO (Maybe (MDoc RdrName)) getPrologue dflags flags = case [filename | Flag_Prologue filename <- flags ] of [] -> return Nothing - [filename] -> withFile filename ReadMode $ \h -> do + [filename] -> do + h <- openFile filename ReadMode hSetEncoding h utf8 - str <- hGetContents h + str <- hGetContents h -- semi-closes the handle return . Just $! parseParas dflags str _ -> throwE "multiple -p/--prologue options" |