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