Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
[BZ #4896, BZ #4936]
2007-08-21 Ulrich Drepper <drepper@redhat.com> [BZ #4936] * iconv/gconv.c (__gconv): If flush was successful, clear rest of the state. * iconvdata/Makefile: Add rules to build and run bug-iconv5. * iconvdata/bug-iconv5.c: New file. [BZ #4896]
- Loading branch information
Ulrich Drepper
committed
Aug 21, 2007
1 parent
0b82ff7
commit 55ea879
Showing
4 changed files
with
79 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
#include <iconv.h> | ||
#include <stdint.h> | ||
#include <stdio.h> | ||
|
||
|
||
static int | ||
do_test (void) | ||
{ | ||
iconv_t cd = iconv_open ("utf-8", "unicode"); | ||
if (cd == (iconv_t) -1) | ||
{ | ||
puts ("cannot open iconv module"); | ||
return 1; | ||
} | ||
|
||
static const uint16_t us[] = { 0xfeff, 0x0041, 0x0042, 0x0043 }; | ||
char buf[100]; | ||
|
||
char *inbuf; | ||
size_t inlen; | ||
char *outbuf; | ||
size_t outlen; | ||
size_t n; | ||
|
||
inbuf = (char *) us; | ||
inlen = sizeof (us); | ||
outbuf = buf; | ||
outlen = sizeof (buf); | ||
n = iconv (cd, &inbuf, &inlen, &outbuf, &outlen); | ||
if (n == (size_t) -1 || inlen != 0 || outlen != sizeof (buf) - 3) | ||
{ | ||
puts ("first conversion failed"); | ||
return 1; | ||
} | ||
|
||
iconv (cd, NULL, NULL, NULL, NULL); | ||
|
||
inbuf = (char *) us; | ||
inlen = sizeof (us); | ||
outbuf = buf; | ||
outlen = sizeof (buf); | ||
n = iconv (cd, &inbuf, &inlen, &outbuf, &outlen); | ||
if (n == (size_t) -1 || inlen != 0 || outlen != sizeof (buf) - 3) | ||
{ | ||
puts ("second conversion failed"); | ||
return 1; | ||
} | ||
|
||
return 0; | ||
} | ||
|
||
#define TEST_FUNCTION do_test () | ||
#include "../test-skeleton.c" |