diff options
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/Makefile | 2 | ||||
-rw-r--r-- | stdio-common/bug18.c | 10 | ||||
-rw-r--r-- | stdio-common/bug18a.c | 6 |
3 files changed, 15 insertions, 3 deletions
diff --git a/stdio-common/Makefile b/stdio-common/Makefile index 57797c7f2b..d8f095ed55 100644 --- a/stdio-common/Makefile +++ b/stdio-common/Makefile @@ -54,7 +54,7 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \ tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 bug15 \ tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ - tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a test-srcs = tst-unbputc tst-printf diff --git a/stdio-common/bug18.c b/stdio-common/bug18.c index c3a86e5786..2e4c378c13 100644 --- a/stdio-common/bug18.c +++ b/stdio-common/bug18.c @@ -2,6 +2,12 @@ #include <errno.h> #include <stdio.h> +#ifndef CHAR +# define CHAR char +# define L(str) str +# define SSCANF sscanf +#endif + static int do_test (void) @@ -11,11 +17,11 @@ do_test (void) printf("checking sscanf\n"); - char str[] = "7-11"; + CHAR str[] = L("7-11"); int i, j, n; i = j = n = 0; - sscanf (str, " %i - %i %n", &i, &j, &n); + SSCANF (str, L(" %i - %i %n"), &i, &j, &n); printf ("found %i-%i (length=%i)\n", i, j, n); int result = 0; diff --git a/stdio-common/bug18a.c b/stdio-common/bug18a.c new file mode 100644 index 0000000000..663cbf4fb7 --- /dev/null +++ b/stdio-common/bug18a.c @@ -0,0 +1,6 @@ +#include <wchar.h> +#define CHAR wchar_t +#define L(str) L##str +#define SSCANF swscanf + +#include "bug18.c" |