[Libsysio-commit] HEAD: libsysio/src cprintf.c
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2008-04-14 19:54:43
|
Update of /cvsroot/libsysio/libsysio/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17751 Modified Files: cprintf.c Log Message: Simplified version of _sysio_diag_printf. Index: cprintf.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/src/cprintf.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -b -B -p -r1.2 -r1.3 --- cprintf.c 7 Apr 2008 18:59:48 -0000 1.2 +++ cprintf.c 14 Apr 2008 19:54:39 -0000 1.3 @@ -143,32 +143,21 @@ _sysio_cprintf(const char *fmt, ...) void _sysio_diag_printf(const char *funidnam, const char *fmt, ...) { - int prelen; char *pre; va_list ap; - int msglen; char *msg; - char *buf; - prelen = asprintf(&pre, "%s: ", funidnam); - if (prelen < 0) - return; + if (asprintf(&pre, "%s: ", funidnam) < 0) + pre = NULL; va_start(ap, fmt); - msglen = vasprintf(&msg, fmt, ap); + if (vasprintf(&msg, fmt, ap) < 0) + msg = NULL; va_end(ap); - if (msglen < 0) { - free(pre); - return; - } - buf = malloc(prelen - 1 + msglen); - if (buf) { - (void )strcpy(buf, pre); - (void )strcpy(buf + prelen, msg); - *(buf + prelen + msglen) = '\0'; - _sysio_cwrite(buf, prelen + msglen); - free(buf); - } + if (pre && msg) + _sysio_cprintf("%s%s", pre, msg); + if (msg) free(msg); + if (msg) free(pre); } #endif |