From 5556dde4d3ad4e34267320b1411fc090b18a24b0 Mon Sep 17 00:00:00 2001 From: Byron Rakitzis Date: Mon, 7 Mar 1994 00:00:01 +0000 Subject: beta: rc-1.5betadev1 --- print.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'print.c') diff --git a/print.c b/print.c index 36fefb5..a5cf25f 100644 --- a/print.c +++ b/print.c @@ -270,9 +270,11 @@ extern int printfmt(Format *format, const char *fmt) { extern int fmtprint(Format *format, const char *fmt,...) { int n = -format->flushed; - va_list saveargs = format->args; + va_list ap, saveargs; - va_start(format->args, fmt); + va_start(ap, fmt); + saveargs = format->args; + format->args = ap; n += printfmt(format, fmt); va_end(format->args); format->args = saveargs; @@ -292,6 +294,7 @@ static void fprint_flush(Format *format, SIZE_T more) { extern int fprint(int fd, const char *fmt,...) { char buf[1024]; Format format; + va_list ap; format.buf = buf; format.bufbegin = buf; @@ -300,7 +303,8 @@ extern int fprint(int fd, const char *fmt,...) { format.flushed = 0; format.u.n = fd; - va_start(format.args, fmt); + va_start(ap, fmt); + format.args = ap; printfmt(&format, fmt); va_end(format.args); @@ -340,8 +344,11 @@ static char *memprint(Format *format, const char *fmt, char *buf, SIZE_T len) { extern char *mprint(const char *fmt,...) { Format format; char *result; + va_list ap; + format.u.n = 1; - va_start(format.args, fmt); + va_start(ap, fmt); + format.args = ap; result = memprint(&format, fmt, ealloc(PRINT_ALLOCSIZE), PRINT_ALLOCSIZE); va_end(format.args); return result; @@ -350,8 +357,11 @@ extern char *mprint(const char *fmt,...) { extern char *nprint(const char *fmt,...) { Format format; char *result; + va_list ap; + format.u.n = 0; - va_start(format.args, fmt); + va_start(ap, fmt); + format.args = ap; result = memprint(&format, fmt, nalloc(PRINT_ALLOCSIZE), PRINT_ALLOCSIZE); va_end(format.args); return result; -- cgit v1.2.3