mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
* stdio-common/printf-parse.h: Include string.h and wchar.h.
(__find_specwc): Change into __extern_always_inline function. (__find_specmb): Likewise. Remove ps argument. Use __strchrnul. (__parse_one_specmb): Remove ps argument. * stdio-common/vfprintf.c (vfprintf): Remove mbstate variable. Adjust __find_specmb and __parse_one_specmb callers. * stdio-common/printf-prs.c (parse_printf_format): Likewise. * stdio-common/printf-parsemb.c (__find_specwc, __find_specmb): Removed. (__parse_one_specmb): Remove ps argument, adjust __find_specmb caller.
This commit is contained in:
@@ -46,35 +46,6 @@
|
||||
|
||||
|
||||
|
||||
/* Find the next spec in FORMAT, or the end of the string. Returns
|
||||
a pointer into FORMAT, to a '%' or a '\0'. */
|
||||
const UCHAR_T *
|
||||
#ifdef COMPILE_WPRINTF
|
||||
__find_specwc (const UCHAR_T *format)
|
||||
#else
|
||||
__find_specmb (const UCHAR_T *format, mbstate_t *ps)
|
||||
#endif
|
||||
{
|
||||
#ifdef COMPILE_WPRINTF
|
||||
return (const UCHAR_T *) __wcschrnul ((const CHAR_T *) format, L'%');
|
||||
#else
|
||||
while (*format != L_('\0') && *format != L_('%'))
|
||||
{
|
||||
int len;
|
||||
|
||||
/* Remove any hints of a wrong encoding. */
|
||||
ps->__count = 0;
|
||||
if (! isascii (*format)
|
||||
&& (len = __mbrlen ((const CHAR_T *) format, MB_CUR_MAX, ps)) > 0)
|
||||
format += len;
|
||||
else
|
||||
++format;
|
||||
}
|
||||
return format;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/* FORMAT must point to a '%' at the beginning of a spec. Fills in *SPEC
|
||||
with the parsed details. POSN is the number of arguments already
|
||||
consumed. At most MAXTYPES - POSN types are filled in TYPES. Return
|
||||
@@ -87,8 +58,7 @@ __parse_one_specwc (const UCHAR_T *format, size_t posn,
|
||||
struct printf_spec *spec, size_t *max_ref_arg)
|
||||
#else
|
||||
__parse_one_specmb (const UCHAR_T *format, size_t posn,
|
||||
struct printf_spec *spec, size_t *max_ref_arg,
|
||||
mbstate_t *ps)
|
||||
struct printf_spec *spec, size_t *max_ref_arg)
|
||||
#endif
|
||||
{
|
||||
unsigned int n;
|
||||
@@ -403,7 +373,7 @@ __parse_one_specmb (const UCHAR_T *format, size_t posn,
|
||||
#ifdef COMPILE_WPRINTF
|
||||
spec->next_fmt = __find_specwc (format);
|
||||
#else
|
||||
spec->next_fmt = __find_specmb (format, ps);
|
||||
spec->next_fmt = __find_specmb (format);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user