summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/stdio/Makefile2
-rw-r--r--libc/stdio/printf.c11
2 files changed, 12 insertions, 1 deletions
diff --git a/libc/stdio/Makefile b/libc/stdio/Makefile
index 2ad7cd737..50f3bd602 100644
--- a/libc/stdio/Makefile
+++ b/libc/stdio/Makefile
@@ -41,7 +41,7 @@ MOBJ=_stdio_init.o fputc.o fgetc.o fflush.o fgets.o gets.o fputs.o \
MSRC2=printf.c
MOBJ2=printf.o sprintf.o fprintf.o vprintf.o vsprintf.o vfprintf.o snprintf.o \
- vsnprintf.o asprintf.o vfnprintf.o fnprintf.o
+ vsnprintf.o asprintf.o vfnprintf.o fnprintf.o vdprintf.o
MSRC3=scanf.c
MOBJ3=scanf.o sscanf.o fscanf.o vscanf.o vsscanf.o vfscanf.o
diff --git a/libc/stdio/printf.c b/libc/stdio/printf.c
index 3a7dda007..898d0b94e 100644
--- a/libc/stdio/printf.c
+++ b/libc/stdio/printf.c
@@ -279,6 +279,17 @@ int vsnprintf(char *sp, size_t size, __const char *fmt, va_list ap)
}
#endif
+#ifdef L_vdprintf
+#warning rewrite vdprintf ... fd may have an associated file!!! plus buffer?
+extern int vdprintf(int fd, const char *fmt, va_list ap)
+{
+ FILE f = {f.unbuf, f.unbuf, f.unbuf, f.unbuf, f.unbuf + sizeof(f.unbuf),
+ fd, _IONBF | __MODE_WRITE | __MODE_IOTRAN};
+
+ return vfnprintf(&f, -1, fmt, ap);
+}
+#endif
+
#ifdef L_vfnprintf
extern char *__ultostr(char *buf, unsigned long uval, int base, int uppercase);