diff options
Diffstat (limited to 'iconvdata/bug-iconv4.c')
-rw-r--r-- | iconvdata/bug-iconv4.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/iconvdata/bug-iconv4.c b/iconvdata/bug-iconv4.c deleted file mode 100644 index 4469034b93..0000000000 --- a/iconvdata/bug-iconv4.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Contributed by Jiro SEKIBA <jir@yamato.ibm.com>. */ -#include <errno.h> -#include <iconv.h> -#include <stdbool.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define UCS_STR "\x4e\x8c" /* EUC-TW 0xa2a2, EUC-JP 0x */ - -static const char *to_code; - -static bool -xiconv (iconv_t cd, int out_size) -{ - unsigned char euc[4]; - char *inp = (char *) UCS_STR; - char *outp = (char *) euc; - size_t inbytesleft = strlen (UCS_STR); - size_t outbytesleft = out_size; - size_t ret; - bool fail = false; - - errno = 0; - ret = iconv (cd, &inp, &inbytesleft, &outp, &outbytesleft); - if (errno || ret == (size_t) -1) - { - fail = out_size == 4 || errno != E2BIG; - printf ("expected %d (E2BIG), got %d (%m)\n", E2BIG, errno); - } - else - { - printf ("%s: 0x%02x%02x\n", to_code, euc[0], euc[1]); - if (out_size == 1) - fail = true; - } - - return fail; -} - - -static iconv_t -xiconv_open (const char *code) -{ - iconv_t cd; - to_code = code; - errno = 0; - if (errno || (cd = iconv_open (to_code, "UCS-2BE")) == (iconv_t) -1) - { - puts ("Can't open converter"); - exit (1); - } - return cd; -} - - -int -main (void) -{ - iconv_t cd; - int result = 0; - - cd = xiconv_open ("EUC-TW"); - result |= xiconv (cd, 4) == true; - puts ("---"); - result |= xiconv (cd, 1) == true; - puts ("---"); - iconv_close (cd); - - cd = xiconv_open ("EUC-JP"); - result |= xiconv (cd, 4) == true; - puts ("---"); - result |= xiconv (cd, 1) == true; - puts ("---"); - iconv_close (cd); - - return result; -} |