From d095b5249cf9e1496ad5a3d6b5acb77af2c587a7 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 28 Apr 2001 13:49:34 +0000 Subject: - added test for vasprintf - cleaned up GNUC printf attribute macros - added enum handling in mkproto - removed non-vararg code - made slprintf and vslprintf just macros for snprintf and vsnprintf - don't need slprintf code any more (This used to be commit c7aeb2254dfc3cd0aa0b6c0bdd426f9323be0ddf) --- source3/lib/debug.c | 42 ----------------------------- source3/lib/slprintf.c | 71 -------------------------------------------------- source3/lib/snprintf.c | 26 +++++++++++------- 3 files changed, 17 insertions(+), 122 deletions(-) (limited to 'source3/lib') diff --git a/source3/lib/debug.c b/source3/lib/debug.c index dc846f1b6f..f7ad324e39 100644 --- a/source3/lib/debug.c +++ b/source3/lib/debug.c @@ -450,26 +450,14 @@ void check_log_size( void ) * This is called by dbghdr() and format_debug_text(). * ************************************************************************** ** */ -#ifdef HAVE_STDARG_H int Debug1( char *format_str, ... ) { -#else - int Debug1(va_alist) -va_dcl -{ - char *format_str; -#endif va_list ap; int old_errno = errno; if( stdout_logging ) { -#ifdef HAVE_STDARG_H va_start( ap, format_str ); -#else - va_start( ap ); - format_str = va_arg( ap, char * ); -#endif if(dbf) (void)vfprintf( dbf, format_str, ap ); va_end( ap ); @@ -524,12 +512,7 @@ va_dcl else priority = priority_map[syslog_level]; -#ifdef HAVE_STDARG_H va_start( ap, format_str ); -#else - va_start( ap ); - format_str = va_arg( ap, char * ); -#endif vslprintf( msgbuf, sizeof(msgbuf)-1, format_str, ap ); va_end( ap ); @@ -544,12 +527,7 @@ va_dcl if( !lp_syslog_only() ) #endif { -#ifdef HAVE_STDARG_H va_start( ap, format_str ); -#else - va_start( ap ); - format_str = va_arg( ap, char * ); -#endif if(dbf) (void)vfprintf( dbf, format_str, ap ); va_end( ap ); @@ -740,7 +718,6 @@ BOOL dbghdr( int level, char *file, char *func, int line ) * * ************************************************************************** ** */ -#ifdef HAVE_STDARG_H BOOL dbgtext( char *format_str, ... ) { va_list ap; @@ -755,24 +732,5 @@ BOOL dbghdr( int level, char *file, char *func, int line ) return( True ); } /* dbgtext */ -#else - BOOL dbgtext( va_alist ) - va_dcl - { - char *format_str; - va_list ap; - pstring msgbuf; - - va_start( ap ); - format_str = va_arg( ap, char * ); - vslprintf( msgbuf, sizeof(msgbuf)-1, format_str, ap ); - va_end( ap ); - - format_debug_text( msgbuf ); - - return( True ); - } /* dbgtext */ - -#endif /* ************************************************************************** */ diff --git a/source3/lib/slprintf.c b/source3/lib/slprintf.c index be81b4aa12..2a72fcffc3 100644 --- a/source3/lib/slprintf.c +++ b/source3/lib/slprintf.c @@ -22,74 +22,3 @@ #include "includes.h" extern int DEBUGLEVEL; - - -/* this is like vsnprintf but the 'n' limit does not include - the terminating null. So if you have a 1024 byte buffer then - pass 1023 for n */ -int vslprintf(char *str, int n, char *format, va_list ap) -{ - int ret = vsnprintf(str, n, format, ap); - if (ret > n || ret < 0) { - str[n] = 0; - return -1; - } - str[ret] = 0; - return ret; -} - -#ifdef HAVE_STDARG_H - int slprintf(char *str, int n, char *format, ...) -{ -#else - int slprintf(va_alist) -va_dcl -{ - char *str, *format; - int n; -#endif - va_list ap; - int ret; - -#ifdef HAVE_STDARG_H - va_start(ap, format); -#else - va_start(ap); - str = va_arg(ap,char *); - n = va_arg(ap,int); - format = va_arg(ap,char *); -#endif - - ret = vslprintf(str,n,format,ap); - va_end(ap); - return ret; -} - - /* this is rather line fprintf, except that it works on a file descriptor - and is limited to one pstring of output */ -#ifdef HAVE_STDARG_H - int fdprintf(int fd, char *format, ...) -{ -#else - int fdprintf(va_alist) -va_dcl -{ - int fd; - char *format; -#endif - va_list ap; - pstring str; - -#ifdef HAVE_STDARG_H - va_start(ap, format); -#else - va_start(ap); - fd = va_arg(ap,int); - format = va_arg(ap,char *); -#endif - str[0] = 0; - - vslprintf(str,sizeof(str),format,ap); - va_end(ap); - return write(fd, str, strlen(str)); -} diff --git a/source3/lib/snprintf.c b/source3/lib/snprintf.c index ce7c4a68f5..3edb50c6ad 100644 --- a/source3/lib/snprintf.c +++ b/source3/lib/snprintf.c @@ -735,23 +735,31 @@ static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c) #endif - -#ifndef HAVE_ASPRINTF - int asprintf(char **ptr, const char *format, ...) +#ifndef HAVE_VASPRINTF + int vasprintf(char **ptr, const char *format, va_list ap) { - va_list ap; int ret; - va_start(ap, format); ret = vsnprintf(NULL, 0, format, ap); - va_end(ap); - if (ret <= 0) return ret; - - va_start(ap, format); + (*ptr) = (char *)malloc(ret+1); if (!*ptr) return -1; ret = vsnprintf(*ptr, ret+1, format, ap); + + return ret; +} +#endif + + +#ifndef HAVE_ASPRINTF + int asprintf(char **ptr, const char *format, ...) +{ + va_list ap; + int ret; + + va_start(ap, format); + ret = vasprintf(ptr, format, ap); va_end(ap); return ret; -- cgit