From caad817d1c250017b3f456417ecf14fa7ad083e6 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 11 Mar 2005 19:13:43 +0000 Subject: Add fprintf() custom version to libpgport. Document use of macros for pg_printf functions. Bump major versions of all interfaces to handle movement of get_progname from libpq to libpgport in 8.0, and probably other libpgport changes in 8.1. --- src/port/snprintf.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'src/port/snprintf.c') diff --git a/src/port/snprintf.c b/src/port/snprintf.c index 1d85c8d830e..602f7fed9c6 100644 --- a/src/port/snprintf.c +++ b/src/port/snprintf.c @@ -65,13 +65,19 @@ * causing nasty effects. **************************************************************/ -/*static char _id[] = "$PostgreSQL: pgsql/src/port/snprintf.c,v 1.17 2005/03/11 17:20:35 momjian Exp $";*/ +/*static char _id[] = "$PostgreSQL: pgsql/src/port/snprintf.c,v 1.18 2005/03/11 19:13:43 momjian Exp $";*/ int pg_snprintf(char *str, size_t count, const char *fmt,...); int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args); int pg_printf(const char *format, ...); static void dopr(char *buffer, const char *format, va_list args, char *end); +/* Prevent recursion */ +#undef vsnprintf +#undef snprintf +#undef fprintf +#undef printf + int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args) { @@ -96,19 +102,36 @@ pg_snprintf(char *str, size_t count, const char *fmt,...) return len; } +int +pg_fprintf(FILE *stream, const char *fmt,...) +{ + int len; + va_list args; + char* buffer[4096]; + char* p; + + va_start(args, fmt); + len = pg_vsnprintf((char*)buffer, (size_t)4096, fmt, args); + va_end(args); + p = (char*)buffer; + for( ;*p; p++) + putc(*p, stream); + return len; +} + int pg_printf(const char *fmt,...) { int len; - va_list args; + va_list args; char* buffer[4096]; - char* p; + char* p; va_start(args, fmt); len = pg_vsnprintf((char*)buffer, (size_t)4096, fmt, args); va_end(args); p = (char*)buffer; - for(;*p;p++) + for( ;*p; p++) putchar(*p); return len; } -- cgit v1.2.3