summaryrefslogtreecommitdiff
path: root/iconv/tst-iconv3.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-01-06 23:27:53 +0000
committerUlrich Drepper <drepper@redhat.com>2001-01-06 23:27:53 +0000
commitec28fc7c4f3e136a38f361cf7ce2274452f0d849 (patch)
tree1c6a7ba85ddbb9ce7e5f0aed31271a494131e9ad /iconv/tst-iconv3.c
parentf1813b562b7d4aebfde07f0991126e2de7a55d73 (diff)
(Finding Tokens in a String): Document XPG basename() and dirname(), aswell as GNU basename().
Diffstat (limited to 'iconv/tst-iconv3.c')
-rw-r--r--iconv/tst-iconv3.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/iconv/tst-iconv3.c b/iconv/tst-iconv3.c
new file mode 100644
index 0000000000..60aa5c3ed8
--- /dev/null
+++ b/iconv/tst-iconv3.c
@@ -0,0 +1,52 @@
+/* Contributed by Owen Taylor <otaylor@redhat.com>. */
+
+#include <iconv.h>
+#include <errno.h>
+#include <stdio.h>
+
+#define BUFSIZE 10000
+
+int
+main (int argc, char *argv[])
+{
+ char inbuf[BUFSIZE];
+ wchar_t outbuf[BUFSIZE];
+
+ iconv_t cd;
+ int i;
+ char *inptr;
+ char *outptr;
+ size_t inbytes_left, outbytes_left;
+ int count;
+ int result = 0;
+
+ for (i=0; i < BUFSIZE; i++)
+ inbuf[i] = 'a';
+
+ cd = iconv_open ("UCS-4LE", "UTF-8");
+
+ inbytes_left = BUFSIZE;
+ outbytes_left = BUFSIZE * 4;
+ inptr = inbuf;
+ outptr = (char *) outbuf;
+
+ count = iconv (cd, &inptr, &inbytes_left, &outptr, &outbytes_left);
+
+ if (count < 0)
+ {
+ if (errno == E2BIG)
+ printf ("Received E2BIG\n");
+ else
+ printf ("Received something else\n");
+
+ printf ("inptr change: %td\n", inptr - inbuf);
+ printf ("inlen change: %d\n", BUFSIZE - inbytes_left);
+ printf ("outptr change: %zd\n", outptr - (char *) outbuf);
+ printf ("outlen change: %d\n", BUFSIZE * 4 - outbytes_left);
+ result = 1;
+ }
+ else
+ printf ("Succeeded\n");
+
+ return result;
+}