From 07a4742f9ec2b0587c0d488bb65da2a6faa50fed Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 9 Jul 1996 23:17:59 +0000 Subject: * posix/glob.h (__glob_opendir_hook, __glob_readdir_hook, __glob_closedir_hook): Remove decls. * sysdeps/generic/machine-gmon.h: Declare mcount_internal. * sysdeps/unix/inet/syscalls.list: Define __ names with weak aliases for send and connect syscalls. * socket/sys/socket.h: New file, taken from non-sysdep parts of linux/sys/socket.h; break sysdeps parts out into socketbits.h. Declare __ names for send and connect. * sysdeps/generic/socketbits.h: New file. * sysdeps/unix/sysv/linux/socketbits.h: New file. * sysdeps/unix/sysv/linux/sys/socket.h: File removed. * sysdeps/generic/sys/socket.h: File removed. * sysdeps/mach/hurd/connect.c: Define __ name and weak alias. * sysdeps/mach/hurd/send.c: Likewise. --- stdio-common/printf-parse.h | 2 ++ stdio-common/printf-prs.c | 7 +++---- stdio-common/vfprintf.c | 7 ++----- 3 files changed, 7 insertions(+), 9 deletions(-) (limited to 'stdio-common') diff --git a/stdio-common/printf-parse.h b/stdio-common/printf-parse.h index a7960e6003..9a5cfbac7e 100644 --- a/stdio-common/printf-parse.h +++ b/stdio-common/printf-parse.h @@ -97,6 +97,8 @@ find_spec (const char *format, mbstate_t *ps) { int len; + /* Remove any hints of a wrong encoding. */ + ps->count = 0; if (isascii (*format) || (len = mbrlen (format, MB_CUR_MAX, ps)) <= 0) ++format; else diff --git a/stdio-common/printf-prs.c b/stdio-common/printf-prs.c index d0756de7d4..a15be55c48 100644 --- a/stdio-common/printf-prs.c +++ b/stdio-common/printf-prs.c @@ -81,7 +81,6 @@ parse_printf_format (fmt, n, argtypes) nargs = 0; max_ref_arg = 0; - mbstate = 0; /* Search for format specifications. */ for (fmt = find_spec (fmt, &mbstate); *fmt != '\0'; fmt = spec.next_fmt) @@ -90,14 +89,14 @@ parse_printf_format (fmt, n, argtypes) nargs += parse_one_spec (fmt, nargs, &spec, &max_ref_arg, &mbstate); /* If the width is determined by an argument this is an int. */ - if (spec.width_arg != -1 && spec.width_arg < n) + if (spec.width_arg != -1 && (size_t) spec.width_arg < n) argtypes[spec.width_arg] = PA_INT; /* If the precision is determined by an argument this is an int. */ - if (spec.prec_arg != -1 && spec.prec_arg < n) + if (spec.prec_arg != -1 && (size_t) spec.prec_arg < n) argtypes[spec.prec_arg] = PA_INT; - if (spec.data_arg < n) + if ((size_t) spec.data_arg < n) switch (spec.ndata_args) { case 0: /* No arguments. */ diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index 8031b99ae9..3fa53a62a8 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -735,16 +735,14 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) else \ { \ const wchar_t *s2 = (const wchar_t *) string; \ - mbstate_t mbstate = 0; \ + mbstate_t mbstate; \ \ - len = wcsrtombs (NULL, &s2, prec != -1 ? prec : UINT_MAX, \ - &mbstate); \ + len = wcsrtombs (NULL, &s2, 0, &mbstate); \ if (len == (size_t) -1) \ /* Illegal wide-character string. */ \ return -1; \ \ s2 = (const wchar_t *) string; \ - mbstate = 0; \ string = alloca (len + 1); \ (void) wcsrtombs (string, &s2, prec != -1 ? prec : UINT_MAX, \ &mbstate); \ @@ -841,7 +839,6 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) /* Initialize local variables. */ done = 0; grouping = (const char *) -1; - mbstate = 0; ap_save = ap; nspecs_done = 0; -- cgit 1.4.1