| /* Test case by yaoz@nih.gov.  */ | 
 |  | 
 | #include <iconv.h> | 
 | #include <stddef.h> | 
 | #include <stdio.h> | 
 | #include <string.h> | 
 |  | 
 | static int | 
 | do_test (void) | 
 | { | 
 |   char utf8[5]; | 
 |   wchar_t ucs4[5]; | 
 |   iconv_t cd; | 
 |   char *inbuf; | 
 |   char *outbuf; | 
 |   size_t inbytes; | 
 |   size_t outbytes; | 
 |   size_t n; | 
 |  | 
 |   strcpy (utf8, "abcd"); | 
 |  | 
 |   /* From UTF8 to UCS4. */ | 
 |   cd = iconv_open ("UCS4", "UTF8"); | 
 |   if (cd == (iconv_t) -1) | 
 |     { | 
 |       perror ("iconv_open"); | 
 |       return 1; | 
 |     } | 
 |  | 
 |   inbuf = utf8; | 
 |   inbytes = 4; | 
 |   outbuf = (char *) ucs4; | 
 |   outbytes = 4 * sizeof (wchar_t);    /* "Argument list too long" error. */ | 
 |   n = iconv (cd, &inbuf, &inbytes, &outbuf, &outbytes); | 
 |   if (n == (size_t) -1) | 
 |     { | 
 |       printf ("iconv: %m\n"); | 
 |       iconv_close (cd); | 
 |       return 1; | 
 |     } | 
 |   iconv_close (cd); | 
 |  | 
 |   return 0; | 
 | } | 
 |  | 
 | #define TEST_FUNCTION do_test () | 
 | #include "../test-skeleton.c" |