From 7888313d3c00975b1f5a0b8e624b85c1b520b134 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 15 Jul 2000 06:14:56 +0000 Subject: Update. 2000-07-14 Ulrich Drepper * iconv/loop.c (STANDARD_ERR_HANDLER): If one of the transliteration function did its job, continue, don't stop. * iconvdata/iso646.c: Little optimizations in body for conversion from UCS4. --- ChangeLog | 8 ++++++++ iconv/loop.c | 4 ++-- iconvdata/iso646.c | 6 +++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index ea6b428..26faaf9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2000-07-14 Ulrich Drepper + + * iconv/loop.c (STANDARD_ERR_HANDLER): If one of the + transliteration function did its job, continue, don't stop. + + * iconvdata/iso646.c: Little optimizations in body for conversion + from UCS4. + 2000-07-14 Mark Kettenis * dlfcn/dlerror.c (free_key_mem): Add cast to silence compiler warning. diff --git a/iconv/loop.c b/iconv/loop.c index b8e7986..9d168d8 100644 --- a/iconv/loop.c +++ b/iconv/loop.c @@ -190,9 +190,9 @@ if (result != __GCONV_ILLEGAL_INPUT) \ break; \ } \ - /* If any of them recognized the input stop. */ \ + /* If any of them recognized the input continue with the loop. */ \ if (result != __GCONV_ILLEGAL_INPUT) \ - break; \ + continue; \ \ /* Next see whether we have to ignore the error. If not, stop. */ \ if (! ignore_errors_p ()) \ diff --git a/iconvdata/iso646.c b/iconvdata/iso646.c index 99dc025..d26ed5e 100644 --- a/iconvdata/iso646.c +++ b/iconvdata/iso646.c @@ -434,11 +434,11 @@ gconv_end (struct __gconv_step *data) #define LOOPFCT TO_LOOP #define BODY \ { \ - unsigned char ch; \ + unsigned int ch; \ int failure = __GCONV_OK; \ \ ch = get32 (inptr); \ - switch (*((uint32_t *) inptr)) \ + switch (ch) \ { \ case 0x23: \ if (var == GB || var == ES || var == IT || var == FR || var == FR1 \ @@ -878,7 +878,7 @@ gconv_end (struct __gconv_step *data) ch = 0x5d; \ break; \ default: \ - if (*((uint32_t *) inptr) > 0x7f) \ + if (__builtin_expect (ch, 0) > 0x7f) \ failure = __GCONV_ILLEGAL_INPUT; \ break; \ } \ -- cgit v1.1