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.
This commit is contained in:
Ulrich Drepper 2000-07-15 06:14:56 +00:00
parent ea1efc6f49
commit 7888313d3c
3 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,11 @@
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> 2000-07-14 Mark Kettenis <kettenis@gnu.org>
* dlfcn/dlerror.c (free_key_mem): Add cast to silence compiler warning. * dlfcn/dlerror.c (free_key_mem): Add cast to silence compiler warning.

View File

@ -190,9 +190,9 @@
if (result != __GCONV_ILLEGAL_INPUT) \ if (result != __GCONV_ILLEGAL_INPUT) \
break; \ 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) \ if (result != __GCONV_ILLEGAL_INPUT) \
break; \ continue; \
\ \
/* Next see whether we have to ignore the error. If not, stop. */ \ /* Next see whether we have to ignore the error. If not, stop. */ \
if (! ignore_errors_p ()) \ if (! ignore_errors_p ()) \

View File

@ -434,11 +434,11 @@ gconv_end (struct __gconv_step *data)
#define LOOPFCT TO_LOOP #define LOOPFCT TO_LOOP
#define BODY \ #define BODY \
{ \ { \
unsigned char ch; \ unsigned int ch; \
int failure = __GCONV_OK; \ int failure = __GCONV_OK; \
\ \
ch = get32 (inptr); \ ch = get32 (inptr); \
switch (*((uint32_t *) inptr)) \ switch (ch) \
{ \ { \
case 0x23: \ case 0x23: \
if (var == GB || var == ES || var == IT || var == FR || var == FR1 \ if (var == GB || var == ES || var == IT || var == FR || var == FR1 \
@ -878,7 +878,7 @@ gconv_end (struct __gconv_step *data)
ch = 0x5d; \ ch = 0x5d; \
break; \ break; \
default: \ default: \
if (*((uint32_t *) inptr) > 0x7f) \ if (__builtin_expect (ch, 0) > 0x7f) \
failure = __GCONV_ILLEGAL_INPUT; \ failure = __GCONV_ILLEGAL_INPUT; \
break; \ break; \
} \ } \