From 01c9ef11939286122f4b77211a80e4d59cfb096e Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Sat, 9 Jan 2010 01:55:48 +0000 Subject: [PATCH] Add win32 version of obstack_vprintf. [r26940] --- ir/obstack_win/obstack.h | 2 ++ ir/obstack_win/obstack_printf.c | 25 ++++++++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/ir/obstack_win/obstack.h b/ir/obstack_win/obstack.h index a0d3f0b46..d031cb234 100644 --- a/ir/obstack_win/obstack.h +++ b/ir/obstack_win/obstack.h @@ -495,6 +495,7 @@ __extension__ \ extern int obstack_printf (struct obstack *obst, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); +extern int obstack_vprintf (struct obstack *obst, const char *fmt, va_list ap); #else /* not __GNUC__ or not __STDC__ */ @@ -598,6 +599,7 @@ extern int obstack_printf (struct obstack *obst, const char *fmt, ...) # endif extern int obstack_printf (struct obstack *obst, const char *fmt, ...); +extern int obstack_vprintf (struct obstack *obst, const char *fmt, va_list ap); #endif /* not __GNUC__ or not __STDC__ */ diff --git a/ir/obstack_win/obstack_printf.c b/ir/obstack_win/obstack_printf.c index 65f06dc4f..94e7458f4 100644 --- a/ir/obstack_win/obstack_printf.c +++ b/ir/obstack_win/obstack_printf.c @@ -6,16 +6,23 @@ #define vsnprintf _vsnprintf #endif -int obstack_printf(struct obstack *obst, const char *fmt, ...) +int obstack_vprintf(struct obstack *obst, const char *fmt, va_list ap) { - char buf[1024]; - va_list ap; - int len; + char buf[1024]; + int len; + + len = vsnprintf(buf, sizeof(buf), fmt, ap); + obstack_grow(obst, buf, len); + return len; +} - va_start(ap, fmt); - len = vsnprintf(buf, sizeof(buf), fmt, ap); - obstack_grow(obst, buf, len); - va_end(ap); +int obstack_printf(struct obstack *obst, const char *fmt, ...) +{ + va_list ap; + int len; - return len; + va_start(ap, fmt); + len = obstack_vprintf(obst, fmt, ap); + va_end(ap); + return len; } -- 2.20.1