projects
/
ghc-base.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't throw an error if the output buffer had no room
[ghc-base.git]
/
GHC
/
IO
/
Encoding
/
Iconv.hs
diff --git
a/GHC/IO/Encoding/Iconv.hs
b/GHC/IO/Encoding/Iconv.hs
index
1c19b00
..
faf58e9
100644
(file)
--- a/
GHC/IO/Encoding/Iconv.hs
+++ b/
GHC/IO/Encoding/Iconv.hs
@@
-194,11
+194,10
@@
iconvRecode iconv_t
else do
errno <- getErrno
case errno of
else do
errno <- getErrno
case errno of
- e | e == eINVAL
- || (e == e2BIG || e == eILSEQ) && new_inleft' /= (iw-ir) -> do
+ e | e == eINVAL || e == e2BIG
+ || e == eILSEQ && new_inleft' /= (iw-ir) -> do
iconv_trace ("iconv ignoring error: " ++ show (errnoToIOError "iconv" e Nothing Nothing))
iconv_trace ("iconv ignoring error: " ++ show (errnoToIOError "iconv" e Nothing Nothing))
- -- Output overflow is relatively harmless, unless
- -- we made no progress at all.
+ -- Output overflow is harmless
--
-- Similarly, we ignore EILSEQ unless we converted no
-- characters. Sometimes iconv reports EILSEQ for a
--
-- Similarly, we ignore EILSEQ unless we converted no
-- characters. Sometimes iconv reports EILSEQ for a
@@
-211,8
+210,9
@@
iconvRecode iconv_t
-- the buffer have been drained.
return (new_input, new_output)
-- the buffer have been drained.
return (new_input, new_output)
- _other ->
- throwErrno "iconvRecoder"
+ e -> do
+ iconv_trace ("iconv returned error: " ++ show (errnoToIOError "iconv" e Nothing Nothing))
+ throwErrno "iconvRecoder"
-- illegal sequence, or some other error
#endif /* !mingw32_HOST_OS */
-- illegal sequence, or some other error
#endif /* !mingw32_HOST_OS */