From 3b187ccb86c5ad5fe969f788d8a635e9f7bbdc5f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 8 Dec 1999 04:56:09 +0000 Subject: [PATCH] Update. * iconvdata/ansi_x3.110.c (from_ansi_x3_110): Don't increment pointers if character is illegal. Reported by Bruno Haible . Reported by Bruno Haible . --- ChangeLog | 5 +++++ iconvdata/ansi_x3.110.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index fe45168..0cb37f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,16 @@ 1999-12-07 Ulrich Drepper + * iconvdata/ansi_x3.110.c (from_ansi_x3_110): Don't increment + pointers if character is illegal. + Reported by Bruno Haible . + * iconv/gconv_db.c (gen_steps): Set __counter initialy to 1. (increment_counter): New function. Broken out of find_derivation. (find_derivation): No need for a lock. Increment counter only when the derivation was already available. * iconv/gconv_dl.c: Add debugging functions. (known_compare): We have to use strcmp. + Reported by Bruno Haible . 1999-12-06 Ulrich Drepper diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c index 9371c5a..35658b5 100644 --- a/iconvdata/ansi_x3.110.c +++ b/iconvdata/ansi_x3.110.c @@ -399,6 +399,7 @@ static const char from_ucs4[][2] = #define BODY \ { \ uint32_t ch = *inptr; \ + int incr; \ \ if (ch >= 0xc1 && ch <= 0xcf) \ { \ @@ -424,12 +425,12 @@ static const char from_ucs4[][2] = \ ch = to_ucs4_comb[ch - 0xc1][ch2 - 0x20]; \ \ - inptr += 2; \ + incr = 2; \ } \ else \ { \ ch = to_ucs4[ch]; \ - ++inptr; \ + incr = 1; \ } \ \ if (ch == 0 && *inptr != '\0') \ @@ -439,6 +440,7 @@ static const char from_ucs4[][2] = break; \ } \ \ + inptr += incr; \ *((uint32_t *) outptr)++ = ch; \ } #include -- 2.7.4