summaryrefslogtreecommitdiff
path: root/tests/test-mbrtowc.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2010-12-27 14:28:11 +0100
committerBruno Haible <bruno@clisp.org>2010-12-27 14:29:25 +0100
commit777cb5e9cb12fd56d998f2eaa9348dd4e0078cac (patch)
tree860a9b97679852b6ffd2d6ad06d41d76a79bb0ed /tests/test-mbrtowc.c
parent94879b67cd7832e8a60df732a23fb764f2a15075 (diff)
downloadgnulib-777cb5e9cb12fd56d998f2eaa9348dd4e0078cac.tar.gz
mbrtowc: Work around a Solaris 7 bug.
* m4/mbrtowc.m4 (gl_MBRTOWC_NULL_ARG1): New macro. (gl_MBRTOWC_NULL_ARG2): Renamed from gl_MBRTOWC_NULL_ARG. (gl_FUNC_MBRTOWC): Update. Define MBRTOWC_NULL_ARG2_BUG instead of MBRTOWC_NULL_ARG_BUG. Invoke gl_MBRTOWC_NULL_ARG1 and define MBRTOWC_NULL_ARG1_BUG. * lib/mbrtowc.c (rpl_mbrtowc): Use MBRTOWC_NULL_ARG2_BUG instead of MBRTOWC_NULL_ARG_BUG. Handle MBRTOWC_NULL_ARG1_BUG. * tests/test-mbrtowc.c (main): Test support of a NULL first argument. * doc/posix-functions/mbrtowc.texi: Mention the Solaris 7 bug.
Diffstat (limited to 'tests/test-mbrtowc.c')
-rw-r--r--tests/test-mbrtowc.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/test-mbrtowc.c b/tests/test-mbrtowc.c
index 5477677c16..8022d025f7 100644
--- a/tests/test-mbrtowc.c
+++ b/tests/test-mbrtowc.c
@@ -1,5 +1,5 @@
/* Test of conversion of multibyte character to wide character.
- Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2008-2010 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -143,6 +143,11 @@ main (int argc, char *argv[])
ASSERT (mbsinit (&state));
input[1] = '\0';
+ /* Test support of NULL first argument. */
+ ret = mbrtowc (NULL, input + 2, 3, &state);
+ ASSERT (ret == 1);
+ ASSERT (mbsinit (&state));
+
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, input + 2, 3, &state);
ASSERT (ret == 1);
@@ -192,6 +197,11 @@ main (int argc, char *argv[])
ASSERT (mbsinit (&state));
input[2] = '\0';
+ /* Test support of NULL first argument. */
+ ret = mbrtowc (NULL, input + 3, 4, &state);
+ ASSERT (ret == 2);
+ ASSERT (mbsinit (&state));
+
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, input + 3, 4, &state);
ASSERT (ret == 2);
@@ -250,6 +260,11 @@ main (int argc, char *argv[])
ASSERT (mbsinit (&state));
input[4] = '\0';
+ /* Test support of NULL first argument. */
+ ret = mbrtowc (NULL, input + 5, 3, &state);
+ ASSERT (ret == 2);
+ ASSERT (mbsinit (&state));
+
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, input + 5, 3, &state);
ASSERT (ret == 2);
@@ -293,6 +308,11 @@ main (int argc, char *argv[])
ASSERT (mbsinit (&state));
input[2] = '\0';
+ /* Test support of NULL first argument. */
+ ret = mbrtowc (NULL, input + 3, 6, &state);
+ ASSERT (ret == 4);
+ ASSERT (mbsinit (&state));
+
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, input + 3, 6, &state);
ASSERT (ret == 4);