mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
Update.
1998-04-07 20:32 Ulrich Drepper <drepper@cygnus.com> * wcsmbs/btowc.c: Fix dozends of bugs in untested code. * wcsmbs/mbrtowc.c: Likewise. * wcsmbs/mbsnrtowcs.c: Likewise. * wcsmbs/mbsrtowcs.c: Likewise. * wcsmbs/wcrtomb.c: Likewise. * wcsmbs/wcsnrtombs.c: Likewise. * wcsmbs/wcsrtombs.c: Likewise. * wcsmbs/wctob.c: Likewise. * iconv/gconv-simple.c (__gconv_transform_ascii_ucs4): Compute position of next output character correctly. (__gconv_transform_ucs4_ascii): Count used input bytes correctly. * stdio-common/vfprintf.c (vfprintf): Clear state before used. * stdlib/strtod.c: Don't use mbtowc. 1998-04-07 19:07 H.J. Lu <hjl@gnu.org> * libio/fileops.c (_IO_file_xsgetn): Call __underflow () when what we want is smaller than a buffer. 1998-04-07 18:14 Ulrich Drepper <drepper@cygnus.com> * elf/dl-support.c (_dl_important_hwcaps): Define dummy version of this function.
This commit is contained in:
@@ -826,6 +826,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
||||
mbstate_t mbstate; \
|
||||
size_t len; \
|
||||
\
|
||||
memset (&mbstate, '\0', sizeof (mbstate_t)); \
|
||||
len = __wcrtomb (buf, (fspec == NULL ? va_arg (ap, wint_t) \
|
||||
: args_value[fspec->data_arg].pa_wchar), \
|
||||
&mbstate); \
|
||||
@@ -880,6 +881,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
||||
const wchar_t *s2 = (const wchar_t *) string; \
|
||||
mbstate_t mbstate; \
|
||||
\
|
||||
memset (&mbstate, '\0', sizeof (mbstate_t)); \
|
||||
len = __wcsrtombs (NULL, &s2, 0, &mbstate); \
|
||||
if (len == (size_t) -1) \
|
||||
/* Illegal wide-character string. */ \
|
||||
@@ -887,6 +889,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
||||
\
|
||||
s2 = (const wchar_t *) string; \
|
||||
string = alloca (len + 1); \
|
||||
memset (&mbstate, '\0', sizeof (mbstate_t)); \
|
||||
(void) __wcsrtombs (string, &s2, prec != -1 ? prec : UINT_MAX, \
|
||||
&mbstate); \
|
||||
} \
|
||||
@@ -993,6 +996,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
||||
#endif
|
||||
nspecs_done = 0;
|
||||
|
||||
/* Put state for processing format string in initial state. */
|
||||
memset (&mbstate, '\0', sizeof (mbstate_t));
|
||||
|
||||
/* Find the first format specifier. */
|
||||
f = lead_str_end = find_spec (format, &mbstate);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user