about summary refs log tree commit diff
path: root/stdio-common
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-07-09 23:17:59 +0000
committerRoland McGrath <roland@gnu.org>1996-07-09 23:17:59 +0000
commit07a4742f9ec2b0587c0d488bb65da2a6faa50fed (patch)
tree2b10e82cad4053bcbe27447bc3d444f6d2aef5e7 /stdio-common
parentc150923988933b5db75a974d4cc08cd7f7aaf3dc (diff)
downloadglibc-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.h2
-rw-r--r--stdio-common/printf-prs.c7
-rw-r--r--stdio-common/vfprintf.c7
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;