mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
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 anycvs/fedora-2_3-branch
5 changed files with 806 additions and 600 deletions
File diff suppressed because it is too large
@ -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; |
|||
} |
|||
Loading…
Reference in new issue