diff options
author | Roland McGrath <roland@gnu.org> | 1996-07-09 23:17:59 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1996-07-09 23:17:59 +0000 |
commit | 07a4742f9ec2b0587c0d488bb65da2a6faa50fed (patch) | |
tree | 2b10e82cad4053bcbe27447bc3d444f6d2aef5e7 /stdio-common | |
parent | c150923988933b5db75a974d4cc08cd7f7aaf3dc (diff) | |
download | glibc-07a4742f9ec2b0587c0d488bb65da2a6faa50fed.tar.gz glibc-07a4742f9ec2b0587c0d488bb65da2a6faa50fed.tar.xz glibc-07a4742f9ec2b0587c0d488bb65da2a6faa50fed.zip |
* posix/glob.h (__glob_opendir_hook, __glob_readdir_hook, cvs/libc-960710
__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.
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/printf-parse.h | 2 | ||||
-rw-r--r-- | stdio-common/printf-prs.c | 7 | ||||
-rw-r--r-- | stdio-common/vfprintf.c | 7 |
3 files changed, 7 insertions, 9 deletions
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; |