1 /* Contributed by Jiro SEKIBA <jir@yamato.ibm.com>. */
9 #define UCS_STR "\x4e\x8c" /* EUC-TW 0xa2a2, EUC-JP 0x */
11 static const char *to_code
;
14 xiconv (iconv_t cd
, int out_size
)
17 char *inp
= (char *) UCS_STR
;
18 char *outp
= (char *) euc
;
19 size_t inbytesleft
= strlen (UCS_STR
);
20 size_t outbytesleft
= out_size
;
25 ret
= iconv (cd
, &inp
, &inbytesleft
, &outp
, &outbytesleft
);
26 if (errno
|| ret
== (size_t) -1)
28 fail
= out_size
== 4 || errno
!= E2BIG
;
29 printf ("expected %d (E2BIG), got %d (%m)\n", E2BIG
, errno
);
33 printf ("%s: 0x%02x%02x\n", to_code
, euc
[0], euc
[1]);
43 xiconv_open (const char *code
)
48 if (errno
|| (cd
= iconv_open (to_code
, "UCS-2BE")) == (iconv_t
) -1)
50 puts ("Can't open converter");
63 cd
= xiconv_open ("EUC-TW");
64 result
|= xiconv (cd
, 4) == true;
66 result
|= xiconv (cd
, 1) == true;
70 cd
= xiconv_open ("EUC-JP");
71 result
|= xiconv (cd
, 4) == true;
73 result
|= xiconv (cd
, 1) == true;