diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-08-05 18:55:24 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-08-05 18:55:24 +0000 |
commit | d012b7df7ec1d6c813cfcc85e8f144aff148d516 (patch) | |
tree | 15dd0ea978d574f06f5f6a0e9d0fec32064495e4 /wcsmbs/tst-mbsrtowcs.c | |
parent | 08bcfb594bceff6d74bce2d8298239881cef8d7d (diff) | |
download | glibc-d012b7df7ec1d6c813cfcc85e8f144aff148d516.tar glibc-d012b7df7ec1d6c813cfcc85e8f144aff148d516.tar.gz glibc-d012b7df7ec1d6c813cfcc85e8f144aff148d516.tar.bz2 glibc-d012b7df7ec1d6c813cfcc85e8f144aff148d516.zip |
Update.
Ulrich Drepper <drepper@redhat.com>
* wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Don't read more input
character than necessary.
2004-08-05 Ulrich Drepper <drepper@redhat.com>
* wcsmbs/Makefile (tests): Add tst-mbsrtowcs.
* wcsmbs/tst-mbsrtowcs.c: New file.
* po/fr.po: Update from translation team.
2004-08-04 Jakub Jelinek <jakub@redhat.com>
If neither IPv4 nor IPv6 interface is present we cannot make any
Diffstat (limited to 'wcsmbs/tst-mbsrtowcs.c')
-rw-r--r-- | wcsmbs/tst-mbsrtowcs.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/wcsmbs/tst-mbsrtowcs.c b/wcsmbs/tst-mbsrtowcs.c new file mode 100644 index 0000000000..eb6c8e21b1 --- /dev/null +++ b/wcsmbs/tst-mbsrtowcs.c @@ -0,0 +1,65 @@ +/* Test NUL handling of mbsrtowcs. + Copyright (C) 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2004. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <stdio.h> +#include <string.h> +#include <wchar.h> + +int +main (void) +{ + const unsigned char buf[] = { 'a', 'b', '\0', 'c', 'd', '\0', 'e' }; + wchar_t out[sizeof (buf)]; + memset (out, '\xff', sizeof (out)); + + mbstate_t state; + memset (&state, '\0', sizeof (state)); + + const char *in = buf; + size_t n = mbsrtowcs (out, &in, sizeof (out) / sizeof (wchar_t), &state); + + int result = 0; + if (n != 2) + { + printf ("n = %zu, expected 2\n", n); + result = 1; + } + if (in != NULL) + { + printf ("in = %p, expected NULL\n", in); + result = 1; + } + if (out[0] != L'a') + { + printf ("out[0] = L'%lc', expected L'a'\n", (wint_t) out[0]); + result = 1; + } + if (out[1] != L'b') + { + printf ("out[1] = L'%lc', expected L'b'\n", (wint_t) out[1]); + result = 1; + } + if (out[2] != L'\0') + { + printf ("out[2] = L'%lc', expected L'\\0'\n", (wint_t) out[2]); + result = 1; + } + return result; +} |