about summary refs log tree commit diff
path: root/stdio-common
diff options
context:
space:
mode:
Diffstat (limited to 'stdio-common')
-rw-r--r--stdio-common/Makefile2
-rw-r--r--stdio-common/stdio_lim.h.in4
-rw-r--r--stdio-common/vfprintf.c26
-rw-r--r--stdio-common/vfscanf.c11
4 files changed, 37 insertions, 6 deletions
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index 2ca21c5de9..75ec880668 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -30,7 +30,6 @@ routines	:=							      \
 	printf_size fprintf printf snprintf sprintf asprintf dprintf	      \
 	vfscanf 							      \
 	fscanf scanf sscanf						      \
-	vfwprintf vfwscanf						      \
 	perror psignal							      \
 	tmpfile tmpfile64 tmpnam tmpnam_r tempnam tempname		      \
 	getline getw putw						      \
@@ -66,6 +65,7 @@ $(inst_includedir)/bits/stdio_lim.h: $(common-objpfx)bits/stdio_lim.h
 	$(do-install)
 
 ifeq ($(stdio),libio)
+routines += vfwprintf vfwscanf
 ifneq (,$(filter %REENTRANT, $(defines)))
 CPPFLAGS += -D_IO_MTSAFE_IO
 endif
diff --git a/stdio-common/stdio_lim.h.in b/stdio-common/stdio_lim.h.in
index 55272963a7..e80867a81e 100644
--- a/stdio-common/stdio_lim.h.in
+++ b/stdio-common/stdio_lim.h.in
@@ -16,7 +16,7 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#if !defined _STDIO_H && !defined __need_FOPEN_MAX
+#if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX
 # error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
 #endif
 
@@ -37,5 +37,5 @@
 #endif
 
 #if defined __need_IOV_MAX && !defined IOV_MAX
-# define IOV_MAX @IOV_MAX@
+@define_IOV_MAX@
 #endif
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index d45e7d96fc..9a8ebabd42 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -104,7 +104,6 @@
 #else /* ! USE_IN_LIBIO */
 /* This code is for use in the GNU C library.  */
 # include <stdio.h>
-# define PUT(F, S, N)	fwrite (S, 1, N, F)
 # define ARGCHECK(S, Format) \
   do									      \
     {									      \
@@ -128,6 +127,25 @@
    while (0)
 # define UNBUFFERED_P(s) ((s)->__buffer == NULL)
 
+# define CHAR_T         char
+# define UCHAR_T        unsigned char
+# define INT_T		int
+# define L_(Str)	Str
+# define ISDIGIT(Ch)	isdigit (Ch)
+
+# define PUT(F, S, N)	fwrite (S, 1, N, F)
+ssize_t __printf_pad __P ((FILE *, char pad, size_t n));
+# define PAD(Padchar)                                                         \
+  if (width > 0)                                                              \
+    { ssize_t __res = __printf_pad (s, (Padchar), width);                     \
+      if (__res == -1)                                                        \
+        {                                                                     \
+          done = -1;                                                          \
+          goto all_done;                                                      \
+        }                                                                     \
+      done += __res; }
+# define PUTC(C, F)    putc (C, F)
+
 /* XXX These declarations should go as soon as the stdio header files
    have these prototypes.   */
 extern void __flockfile (FILE *);
@@ -1155,15 +1173,17 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
   /* Sanity check of arguments.  */
   ARGCHECK (s, format);
 
+#ifdef ORIENT
   /* Check for correct orientation.  */
   if (
-#ifdef USE_IN_LIBIO
+# ifdef USE_IN_LIBIO
       s->_vtable_offset == 0 &&
-#endif
+# endif
       _IO_fwide (s, sizeof (CHAR_T) == 1 ? -1 : 1)
       != (sizeof (CHAR_T) == 1 ? -1 : 1))
     /* The stream is already oriented otherwise.  */
     return EOF;
+#endif
 
   if (UNBUFFERED_P (s))
     /* Use a helper function which will allocate a local temporary buffer
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index e7dc80501f..a6e3bb2a23 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -169,6 +169,17 @@
 # define ungetc(c, s)	((void) (c != EOF && --read_in), ungetc (c, s))
 # define inchar()	(c == EOF ? EOF					      \
 			 : ((c = getc (s)), (void) (c != EOF && ++read_in), c))
+# define MEMCPY(d, s, n)  memcpy (d, s, n)
+# define ISSPACE(Ch)      isspace (Ch)
+# define ISDIGIT(Ch)      isdigit (Ch)
+# define ISXDIGIT(Ch)     isxdigit (Ch)
+# define TOLOWER(Ch)      tolower (Ch)
+
+# define L_(Str)          Str
+# define CHAR_T           char
+# define UCHAR_T          unsigned char
+# define WINT_T           int
+
 # define encode_error()	do {						      \
 			  funlockfile (s);				      \
 			  __set_errno (EILSEQ);				      \