diff options
| author | David Lamparter <equinox@diac24.net> | 2019-05-12 21:10:04 +0200 |
|---|---|---|
| committer | David Lamparter <equinox@diac24.net> | 2019-06-03 16:44:51 +0200 |
| commit | 5c25bd87b5a0b722e7491e8467728ffff936a904 (patch) | |
| tree | 8591fc660caa31814e2d994189ef7e1e141b1ee2 /lib/printf/vfprintf.c | |
| parent | 8be3678a2331250b0559d07526e66b73d1794d8c (diff) | |
lib/printf: integrate
Signed-off-by: David Lamparter <equinox@diac24.net>
Diffstat (limited to 'lib/printf/vfprintf.c')
| -rw-r--r-- | lib/printf/vfprintf.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/lib/printf/vfprintf.c b/lib/printf/vfprintf.c index 66cedcb698..05e88afd73 100644 --- a/lib/printf/vfprintf.c +++ b/lib/printf/vfprintf.c @@ -37,7 +37,13 @@ * SUCH DAMAGE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_SYS_CDEFS_H #include <sys/cdefs.h> +#endif /* * Actual printf innards. @@ -60,17 +66,6 @@ #include <stdarg.h> -#define NO_FLOATING_POINT - -int __vfprintf(FILE *fp, const char *fmt0, va_list ap); - -struct __suio { - size_t uio_resid; - - struct iovec *uio_iov; - size_t uio_iovcnt; -}; - #include "printflocal.h" #define CHAR char @@ -151,8 +146,8 @@ __wcsconv(wchar_t *wcsarg, int prec) /* * Non-MT-safe version */ -int -__vfprintf(FILE *fp, const char *fmt0, va_list ap) +ssize_t +vbprintfrr(struct fbuf *cb, const char *fmt0, va_list ap) { char *fmt; /* format string */ int ch; /* character from fmt */ @@ -181,7 +176,6 @@ __vfprintf(FILE *fp, const char *fmt0, va_list ap) int nextarg; /* 1-based argument index */ va_list orgap; /* original argument pointer */ char *convbuf; /* wide to multibyte conversion result */ - int savserr; static const char xdigs_lower[16] = "0123456789abcdef"; static const char xdigs_upper[16] = "0123456789ABCDEF"; @@ -266,16 +260,13 @@ __vfprintf(FILE *fp, const char *fmt0, va_list ap) val = GETARG (int); \ } - savserr = fp->_flags & __SERR; - fp->_flags &= ~__SERR; - saved_errno = errno; convbuf = NULL; fmt = (char *)fmt0; argtable = NULL; nextarg = 1; va_copy(orgap, ap); - io_init(&io, fp); + io_init(&io, cb); ret = 0; /* |
