summaryrefslogtreecommitdiff
path: root/stdio-common
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-08-22 16:26:00 +0000
committerUlrich Drepper <drepper@redhat.com>1999-08-22 16:26:00 +0000
commitab58d6203b8322bcfa253923d86c991c1f6a4294 (patch)
tree10b6ecae5e175febbd60b1ca1aa68233129f2d89 /stdio-common
parentfd292f70c098f85324b051661c7cd1e5015e0fe1 (diff)
Update.
1999-08-21 Mark Kettenis <kettenis@gnu.org> * stdio-common/vfscanf.c [! USE_IN_LIBIO]: Add necessary definitions for MEMCPY, ISSPACE, ISDIGIT, ISXDIGIT, TOLOWER, L_, CHAR_T, UCHAR_T and WIN_T to make the code compile again when stdio is used instead of libio. * stdio-common/vfprintf.c [! USE_IN_LIBIO]: Add necessary definitions for CHAR_T, UCHAR_T, INT_T, L_, ISDIGIT, PAD and PUTC to make the code compile again when stdio is used instead of libio. (vfprintf): Only check for correct orientation if ORIENT is defined. * stdio-common/Makefile (routines): Only add vfwprintf and vfwscanf if we're using libio. 1999-08-21 Mark Kettenis <kettenis@gnu.org> * include/stdio.h [! USE_IN_LIBIO && __need_FILE]: Avoid defining any additional prototype just as we do for libio. 1999-08-21 Mark Kettenis <kettenis@gnu.org> * include/bits/xopen_lim.h: Do not define STREAM_MAX and TZNAME_MAX. These limits are not X/Open specific. * stdio-common/stdio_lim.h.in: Allow inclusion when __need_IOV_MAX is defined. 1999-08-21 Mark Kettenis <kettenis@gnu.org> * Rules: When generated stdio_lim.h, avoid defining IOV_MAX if UIO_MAXIOV is left undefined in sys/uio.h. * stdio-common/stdio_lim.h.in: Adapt for change above. 1999-08-21 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/mips/bits/sigaction.h (SA_RESETHAND): Add it. * sysdeps/mips/bits/dlfcn.h: Remove SGI specific calls, add RTLD_LOCAL. Patches by Ralf Baechle <ralf@uni-koblenz.de>
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); \