diff options
Diffstat (limited to 'stdio-common/vfprintf.c')
-rw-r--r-- | stdio-common/vfprintf.c | 26 |
1 files changed, 23 insertions, 3 deletions
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 |