diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-11-20 23:42:04 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-11-20 23:42:04 +0000 |
commit | eb9dc2a22dbce7b03fb8efbdc67724ffd9b7d85d (patch) | |
tree | 6fc48c9f4f1c8e0a1d8a2cf975929aba2c858c85 /iconvdata | |
parent | 218d76e03413b532f72d47d2695be049d6a2aa64 (diff) | |
download | glibc-eb9dc2a22dbce7b03fb8efbdc67724ffd9b7d85d.tar.gz glibc-eb9dc2a22dbce7b03fb8efbdc67724ffd9b7d85d.tar.xz glibc-eb9dc2a22dbce7b03fb8efbdc67724ffd9b7d85d.zip |
Update.
* iconv/gconv_simple.c (internal_ucs4le_loop_unaligned): Return __GCONV_EMPTY_INPUT only if input is really empty. Otherwise __GCONV_INCOMPLETE_INPUT. (ucs4le_internal_loop): Likewise. (ucs4le_internal_loop_unaligned): Likewise. * iconvdata/unicode.c (PREPARE_LOOP): Likewise. * iconvdata/utf-16.c (PREPARE_LOOP): Likewise. * iconvdata/utf-32.c (PREPARE_LOOP): Likewise. * iconv/loop.c (LOOPFCT): First test for empty input then for full output buffer.
Diffstat (limited to 'iconvdata')
-rw-r--r-- | iconvdata/unicode.c | 3 | ||||
-rw-r--r-- | iconvdata/utf-16.c | 3 | ||||
-rw-r--r-- | iconvdata/utf-32.c | 3 |
3 files changed, 6 insertions, 3 deletions
diff --git a/iconvdata/unicode.c b/iconvdata/unicode.c index c88f75dd85..df452d2a1d 100644 --- a/iconvdata/unicode.c +++ b/iconvdata/unicode.c @@ -49,7 +49,8 @@ { \ /* We have to find out which byte order the file is encoded in. */ \ if (inptr + 2 > inend) \ - return __GCONV_EMPTY_INPUT; \ + return (inptr == inend \ + ? __GCONV_EMPTY_INPUT : __GCONV_INCOMPLETE_INPUT); \ \ if (get16u (inptr) == BOM) \ /* Simply ignore the BOM character. */ \ diff --git a/iconvdata/utf-16.c b/iconvdata/utf-16.c index 642340611d..b8165088e1 100644 --- a/iconvdata/utf-16.c +++ b/iconvdata/utf-16.c @@ -51,7 +51,8 @@ { \ /* We have to find out which byte order the file is encoded in. */ \ if (inptr + 2 > inend) \ - return __GCONV_EMPTY_INPUT; \ + return (inptr == inend \ + ? __GCONV_EMPTY_INPUT : __GCONV_INCOMPLETE_INPUT); \ \ if (get16u (inptr) == BOM) \ /* Simply ignore the BOM character. */ \ diff --git a/iconvdata/utf-32.c b/iconvdata/utf-32.c index 01f4b881dc..cc02651374 100644 --- a/iconvdata/utf-32.c +++ b/iconvdata/utf-32.c @@ -49,7 +49,8 @@ { \ /* We have to find out which byte order the file is encoded in. */ \ if (inptr + 4 > inend) \ - return __GCONV_EMPTY_INPUT; \ + return (inptr == inend \ + ? __GCONV_EMPTY_INPUT : __GCONV_INCOMPLETE_INPUT); \ \ if (get32u (inptr) == BOM) \ /* Simply ignore the BOM character. */ \ |