diff --git a/Messages/Progress.hs b/Messages/Progress.hs index 60ab8271ae..c9a7cfda8f 100644 --- a/Messages/Progress.hs +++ b/Messages/Progress.hs @@ -61,8 +61,8 @@ mkProgressHandler meter = ProgressHandler quietmode = withOutputType $ \t -> return $ case t of ProgressOutput -> True _ -> False - stderrhandler emitter h = do - void $ emitter =<< hGetLine stderr + stderrhandler emitter h = unlessM (hIsEOF h) $ do + void $ emitter =<< hGetLine h stderrhandler emitter h {- Generates an IO action that can be used to emit stderr. diff --git a/Utility/Process.hs b/Utility/Process.hs index 64363cf6b4..0f494810cf 100644 --- a/Utility/Process.hs +++ b/Utility/Process.hs @@ -321,6 +321,7 @@ stderrHandle _ = error "expected stderrHandle" ioHandles :: (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) -> (Handle, Handle) ioHandles (Just hin, Just hout, _, _) = (hin, hout) ioHandles _ = error "expected ioHandles" +oeHandles :: (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) -> (Handle, Handle) oeHandles (_, Just hout, Just herr, _) = (hout, herr) oeHandles _ = error "expected oeHandles"