diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-04-12 20:26:40 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-04-12 20:26:40 +0000 |
commit | b721a2c03c079f8939fae82823b6f75ef5b6639b (patch) | |
tree | cf46fabfc0a8aabeeb23a13c2eeb4b862fda99d0 /iconvdata/utf-16.c | |
parent | 9dd7309ceee055ed98039f29982dc773bfc63bef (diff) | |
download | glibc-b721a2c03c079f8939fae82823b6f75ef5b6639b.tar.gz |
Update.
2001-04-12 Bruno Haible <haible@clisp.cons.org>
* iconvdata/TESTS2: New file.
* iconvdata/run-iconv-test.sh: Also run tests from TESTS2.
* iconvdata/testdata/alfabeta..UTF-8: New file.
* iconvdata/testdata/alfabeta..UTF-16.BE: New file.
* iconvdata/testdata/alfabeta..UTF-16.LE: New file.
* iconvdata/testdata/alfabeta..UTF-32.BE: New file.
* iconvdata/testdata/alfabeta..UTF-32.LE: New file.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-32.c: New file.
* iconvdata/gconv-modules: Add entries for UTF-32, UTF-32LE, UTF-32BE.
* iconvdata/Makefile (modules): Add UTF-32.
(distribute): Add utf-32.c.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-16.c (PREPARE_LOOP): Initialize 'swap' after possibly
changing it in the state. After incrementing 'inptr', store it back.
* iconvdata/unicode.c (PREPARE_LOOP): After incrementing 'inptr',
store it back.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-16.c (gconv_init): Use MAX_NEEDED_FROM, not
MIN_NEEDED_FROM.
Diffstat (limited to 'iconvdata/utf-16.c')
-rw-r--r-- | iconvdata/utf-16.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/iconvdata/utf-16.c b/iconvdata/utf-16.c index c40e29685a..6001b36cb7 100644 --- a/iconvdata/utf-16.c +++ b/iconvdata/utf-16.c @@ -1,5 +1,5 @@ /* Conversion module for UTF-16. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. @@ -44,7 +44,7 @@ #define PREPARE_LOOP \ enum direction dir = ((struct utf16_data *) step->__data)->dir; \ enum variant var = ((struct utf16_data *) step->__data)->var; \ - int swap = ((struct utf16_data *) step->__data)->swap; \ + int swap; \ if (FROM_DIRECTION && var == UTF_16) \ { \ if (data->__invocation_counter == 0) \ @@ -55,11 +55,11 @@ \ if (get16u (inptr) == BOM) \ /* Simply ignore the BOM character. */ \ - inptr += 2; \ + *inptrp = inptr += 2; \ else if (get16u (inptr) == BOM_OE) \ { \ ((struct utf16_data *) step->__data)->swap = 1; \ - inptr += 2; \ + *inptrp = inptr += 2; \ } \ } \ } \ @@ -72,7 +72,8 @@ \ put16u (outbuf, BOM); \ outbuf += 2; \ - } + } \ + swap = ((struct utf16_data *) step->__data)->swap; #define EXTRA_LOOP_ARGS , var, swap @@ -159,7 +160,7 @@ gconv_init (struct __gconv_step *step) if (dir == from_utf16) { step->__min_needed_from = MIN_NEEDED_FROM; - step->__max_needed_from = MIN_NEEDED_FROM; + step->__max_needed_from = MAX_NEEDED_FROM; step->__min_needed_to = MIN_NEEDED_TO; step->__max_needed_to = MIN_NEEDED_TO; } @@ -168,7 +169,7 @@ gconv_init (struct __gconv_step *step) step->__min_needed_from = MIN_NEEDED_TO; step->__max_needed_from = MIN_NEEDED_TO; step->__min_needed_to = MIN_NEEDED_FROM; - step->__max_needed_to = MIN_NEEDED_FROM; + step->__max_needed_to = MAX_NEEDED_FROM; } step->__stateful = 0; |