From 11836eb5e32085f9808d35ca6e7dc23d61a5090b Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 5 Jun 2006 16:55:38 +0000 Subject: 22484: support varargs.h in addition to stdarg.h --- Src/utils.c | 64 ++++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 20 deletions(-) (limited to 'Src/utils.c') diff --git a/Src/utils.c b/Src/utils.c index bb814a41b..2d7bf2ec6 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -78,11 +78,14 @@ zwarning(const char *cmd, const char *fmt, va_list ap) zerrmsg(fmt, ap); } + /**/ mod_export void -zerr(const char *fmt, ...) +zerr(VA_ALIST1(const char *fmt)) +VA_DCL { va_list ap; + VA_DEF_ARG(const char *fmt); if (errflag || noerrs) { if (noerrs < 2) @@ -90,7 +93,8 @@ zerr(const char *fmt, ...) return; } - va_start(ap, fmt); + VA_START(ap, fmt); + VA_GET_ARG(ap, fmt, const char *); zwarning(NULL, fmt, ap); va_end(ap); errflag = 1; @@ -98,14 +102,19 @@ zerr(const char *fmt, ...) /**/ mod_export void -zerrnam(const char *cmd, const char *fmt, ...) +zerrnam(VA_ALIST2(const char *cmd, const char *fmt)) +VA_DCL { va_list ap; + VA_DEF_ARG(const char *cmd); + VA_DEF_ARG(const char *fmt); if (errflag || noerrs) return; - va_start(ap, fmt); + VA_START(ap, fmt); + VA_GET_ARG(ap, cmd, const char *); + VA_GET_ARG(ap, fmt, const char *); zwarning(cmd, fmt, ap); va_end(ap); errflag = 1; @@ -113,33 +122,60 @@ zerrnam(const char *cmd, const char *fmt, ...) /**/ mod_export void -zwarn(const char *fmt, ...) +zwarn(VA_ALIST1(const char *fmt)) +VA_DCL { va_list ap; + VA_DEF_ARG(const char *fmt); if (errflag || noerrs) return; - va_start(ap, fmt); + VA_START(ap, fmt); + VA_GET_ARG(ap, fmt, const char *); zwarning(NULL, fmt, ap); va_end(ap); } /**/ mod_export void -zwarnnam(const char *cmd, const char *fmt, ...) +zwarnnam(VA_ALIST2(const char *cmd, const char *fmt)) +VA_DCL { va_list ap; + VA_DEF_ARG(const char *cmd); + VA_DEF_ARG(const char *fmt); if (errflag || noerrs) return; - va_start(ap, fmt); + VA_START(ap, fmt); + VA_GET_ARG(ap, cmd, const char *); + VA_GET_ARG(ap, fmt, const char *); zwarning(cmd, fmt, ap); va_end(ap); } +#ifdef DEBUG + +/**/ +mod_export void +dputs(VA_ALIST1(const char *message)) +VA_DCL +{ + va_list ap; + VA_DEF_ARG(const char *message); + + VA_START(ap, message); + VA_GET_ARG(ap, message, const char *); + zerrmsg(message, ap); + va_end(ap); + fflush(stderr); +} + +#endif /* DEBUG */ + #ifdef __CYGWIN__ /* * This works around an occasional problem with dllwrap on Cygwin, seen @@ -4536,18 +4572,6 @@ privasserted(void) return 0; } -#ifdef DEBUG - -/**/ -mod_export void -dputs(char *message) -{ - fprintf(stderr, "%s\n", message); - fflush(stderr); -} - -#endif /* DEBUG */ - /**/ mod_export int mode_to_octal(mode_t mode) -- cgit 1.4.1