diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-05-17 07:11:00 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-05-17 07:11:00 +0000 |
commit | 304d7abfadb59d53c078c43bf825d13d279992c0 (patch) | |
tree | fec6f832bfe4b8668556f3c64e6eb7150c181546 /iconvdata/iso-2022-cn-ext.c | |
parent | d1abdd5c07fd4479d4981b12c5719e74a4c80189 (diff) | |
download | glibc-304d7abfadb59d53c078c43bf825d13d279992c0.tar.gz |
Update.
2001-05-14 Bruno Haible <haible@clisp.cons.org>
* iconvdata/iso-2022-cn-ext.c (BODY for FROM_LOOP): If SO is seen
without previous announcement, reject it regularly, don't abort.
2001-05-16 Ulrich Drepper <drepper@redhat.com>
* math/tgmath.h: Fix handling of int parameters to binary and
ternary functions. Reported by mitr@volny.cz.
* math/test-tgmath.c: Add tests for calls with integer parameters.
* manual/llio.texi: Many grammar and typo fixes to the section on AIO.
Diffstat (limited to 'iconvdata/iso-2022-cn-ext.c')
-rw-r--r-- | iconvdata/iso-2022-cn-ext.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c index d6ab2e8bbe..ab8a988550 100644 --- a/iconvdata/iso-2022-cn-ext.c +++ b/iconvdata/iso-2022-cn-ext.c @@ -260,21 +260,33 @@ enum XXX For now I'll default to use GB2312. If this is not the \ best behavior (e.g., we should flag an error) let me know. */ \ ++inptr; \ - switch (ann & SO_ann) \ + if ((ann & SO_ann) != 0) \ + switch (ann & SO_ann) \ + { \ + case GB2312_ann: \ + set = GB2312_set; \ + break; \ + case GB12345_ann: \ + set = GB12345_set; \ + break; \ + case CNS11643_1_ann: \ + set = CNS11643_1_set; \ + break; \ + case ISO_IR_165_ann: \ + set = ISO_IR_165_set; \ + break; \ + default: \ + abort (); \ + } \ + else \ { \ - case GB2312_ann: \ - set = GB2312_set; \ - break; \ - case GB12345_ann: \ - set = GB12345_set; \ - break; \ - case CNS11643_1_ann: \ - set = CNS11643_1_set; \ - break; \ - default: \ - assert ((ann & SO_ann) == ISO_IR_165_ann); \ - set = ISO_IR_165_set; \ - break; \ + if (! ignore_errors_p ()) \ + { \ + result = __GCONV_ILLEGAL_INPUT; \ + break; \ + } \ + ++inptr; \ + ++*irreversible; \ } \ continue; \ } \ |