From 1074cc24d527982badfbdfc85114537b717e3a6e Mon Sep 17 00:00:00 2001 From: shatty Date: Tue, 30 Dec 2003 11:09:44 +0000 Subject: [PATCH] fix stupid looping bug on large files - thanks kuye, Tim git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5823 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/textencoding/utf8_conversions.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/kits/textencoding/utf8_conversions.cpp b/src/kits/textencoding/utf8_conversions.cpp index 86ee58af73..fc221001ec 100644 --- a/src/kits/textencoding/utf8_conversions.cpp +++ b/src/kits/textencoding/utf8_conversions.cpp @@ -39,6 +39,11 @@ convert_encoding(const char * from, const char * to, do { size_t nonReversibleConversions = iconv(conversion,inputBuffer,&inputLeft,&dst,&outputLeft); if (nonReversibleConversions == (size_t)-1) { + if (errno == E2BIG) { + // Not enough room in the output buffer for the next converted character + // This is not a "real" error, we just quit out. + break; + } switch (errno) { case EILSEQ: // unable to generate a corresponding character { @@ -71,9 +76,6 @@ convert_encoding(const char * from, const char * to, inputBuffer++; inputLeft--; break; - case E2BIG: - // not enough room in the output buffer for the next converted character - break; default: // unknown error, completely bail status = errno;