mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 00:10:10 +00:00
Update.
* wcsmbs/mbsrtowcs.c: Compute return value correctly after change in gconv function.
This commit is contained in:
parent
1f547466cf
commit
a5334a6807
@ -1,5 +1,8 @@
|
||||
2000-01-18 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* wcsmbs/mbsrtowcs.c: Compute return value correctly after change
|
||||
in gconv function.
|
||||
|
||||
* wcsmbs/mbrtowc.c: Don't set errno if byte sequence is only
|
||||
incomplete but correct.
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
2000-01-18 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* locales/ja_JP: Add double-width digits to digit class.
|
||||
|
||||
2000-01-12 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* charmaps/ISO-8859-16: Add mapping for /xba.
|
||||
|
@ -60,7 +60,9 @@ alpha <A>;<B>;<C>;<D>;<E>;<F>;<G>;<H>;<I>;<J>;<K>;<L>;<M>;/
|
||||
<J1137>....<J1187>
|
||||
|
||||
digit <zero>;<one>;<two>;<three>;<four>;/
|
||||
<five>;<six>;<seven>;<eight>;<nine>
|
||||
<five>;<six>;<seven>;<eight>;<nine>;/
|
||||
<j0316>;<j0317>;<j0318>;<j0319>;<j0320>;/
|
||||
<j0321>;<j0322>;<j0323>;<j0324>;<j0325>
|
||||
|
||||
xdigit <zero>;<one>;<two>;<three>;<four>;/
|
||||
<five>;<six>;<seven>;<eight>;<nine>;/
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
|
||||
|
||||
@ -42,9 +42,10 @@ __mbsrtowcs (dst, src, len, ps)
|
||||
mbstate_t *ps;
|
||||
{
|
||||
struct __gconv_step_data data;
|
||||
size_t result = 0;
|
||||
size_t result;
|
||||
int status;
|
||||
struct __gconv_step *towc;
|
||||
size_t non_reversible;
|
||||
|
||||
/* Tell where we want the result. */
|
||||
data.__invocation_counter = 0;
|
||||
@ -65,13 +66,16 @@ __mbsrtowcs (dst, src, len, ps)
|
||||
const unsigned char *inbuf = (const unsigned char *) *src;
|
||||
const unsigned char *srcend = inbuf + strlen (inbuf) + 1;
|
||||
|
||||
result = 0;
|
||||
data.__outbufend = (char *) buf + sizeof (buf);
|
||||
do
|
||||
{
|
||||
data.__outbuf = (char *) buf;
|
||||
|
||||
status = (*towc->__fct) (__wcsmbs_gconv_fcts.towc, &data, &inbuf,
|
||||
srcend, &result, 0);
|
||||
srcend, &non_reversible, 0);
|
||||
|
||||
result += (wchar_t *) data.__outbuf - buf;
|
||||
}
|
||||
while (status == __GCONV_FULL_OUTPUT);
|
||||
|
||||
@ -99,7 +103,9 @@ __mbsrtowcs (dst, src, len, ps)
|
||||
|
||||
status = (*towc->__fct) (__wcsmbs_gconv_fcts.towc, &data,
|
||||
(const unsigned char **) src, srcend,
|
||||
&result, 0);
|
||||
&non_reversible, 0);
|
||||
|
||||
result = (wchar_t *) data.__outbuf - dst;
|
||||
|
||||
/* We have to determine whether the last character converted
|
||||
is the NUL character. */
|
||||
|
Loading…
Reference in New Issue
Block a user