|  | #include <string.h> | 
|  | #include <stdio.h> | 
|  | #include <stdlib.h> | 
|  | #include <errno.h> | 
|  | #include <iconv.h> | 
|  | #include <locale.h> | 
|  |  | 
|  | static const char testbuf[] = { | 
|  | 0xEF, 0xBE, 0x9F, 0xD0, 0xB4, 0xEF, 0xBE, 0x9F, 0x29, 0xEF, 0xBE, 0x8E, | 
|  | 0xEF, 0xBE, 0x9F, 0xEF, 0xBD, 0xB6, 0xEF, 0xBD, 0xB0, 0xEF, 0xBE, 0x9D | 
|  | }; | 
|  |  | 
|  | static int | 
|  | do_test (void) | 
|  | { | 
|  | setlocale (LC_ALL, "de_DE.UTF-8"); | 
|  | iconv_t ic = iconv_open ("ISO-2022-JP//TRANSLIT", "UTF-8"); | 
|  | if (ic == (iconv_t) -1) | 
|  | { | 
|  | puts ("iconv_open failed"); | 
|  | return 1; | 
|  | } | 
|  | size_t outremain = sizeof testbuf; | 
|  | char outbuf[outremain]; | 
|  | char *inp = (char *) testbuf; | 
|  | char *outp = outbuf; | 
|  | size_t inremain = sizeof testbuf; | 
|  |  | 
|  | int ret = iconv (ic, &inp, &inremain, &outp, &outremain); | 
|  |  | 
|  | int result = 0; | 
|  | if (ret == (size_t) -1) | 
|  | { | 
|  | if (errno == E2BIG) | 
|  | puts ("buffer too small reported.  OK"); | 
|  | else | 
|  | { | 
|  | printf ("iconv failed with %d (%m)\n", errno); | 
|  | result = 0; | 
|  | } | 
|  | } | 
|  | else | 
|  | { | 
|  | printf ("iconv returned %d\n", ret); | 
|  | result = 1; | 
|  | } | 
|  |  | 
|  | return result; | 
|  | } | 
|  |  | 
|  | #define TEST_FUNCTION do_test () | 
|  | #include "../test-skeleton.c" |