2000-07-14 Ulrich Drepper <drepper@redhat.com>
* 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 Ulrich Drepper <drepper@redhat.com>
+
+ * 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 <kettenis@gnu.org>
* dlfcn/dlerror.c (free_key_mem): Add cast to silence compiler warning.
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 ()) \
#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 \
ch = 0x5d; \
break; \
default: \
- if (*((uint32_t *) inptr) > 0x7f) \
+ if (__builtin_expect (ch, 0) > 0x7f) \
failure = __GCONV_ILLEGAL_INPUT; \
break; \
} \