From owner-freebsd-audit Fri Jun 15 22:51: 0 2001 Delivered-To: freebsd-audit@freebsd.org Received: from assaris.sics.se (h122n4fls32o892.telia.com [213.64.47.122]) by hub.freebsd.org (Postfix) with ESMTP id E9C3A37B406 for ; Fri, 15 Jun 2001 22:50:44 -0700 (PDT) (envelope-from assar@assaris.sics.se) Received: (from assar@localhost) by assaris.sics.se (8.9.3/8.9.3) id HAA12880; Sat, 16 Jun 2001 07:50:49 +0200 (CEST) (envelope-from assar) To: freebsd-audit@freebsd.org Subject: *printf simplifications? From: Assar Westerlund Date: 16 Jun 2001 07:50:48 +0200 Message-ID: <5lelslx9af.fsf@assaris.sics.se> Lines: 5 User-Agent: Gnus/5.070098 (Pterodactyl Gnus v0.98) Emacs/20.6 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG --=-=-= Any reason not to commit this? /assar --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=libcd Index: asprintf.c =================================================================== RCS file: /home/ncvs/src/lib/libc/stdio/asprintf.c,v retrieving revision 1.7 diff -u -w -r1.7 asprintf.c --- asprintf.c 2001/02/11 22:06:39 1.7 +++ asprintf.c 2001/06/16 05:45:30 @@ -54,30 +54,13 @@ { int ret; va_list ap; - FILE f; #if __STDC__ va_start(ap, fmt); #else va_start(ap); #endif - f._file = -1; - f._flags = __SWR | __SSTR | __SALC; - f._bf._base = f._p = (unsigned char *)malloc(128); - if (f._bf._base == NULL) { - *str = NULL; - errno = ENOMEM; - return (-1); - } - f._bf._size = f._w = 127; /* Leave room for the NULL */ - ret = __vfprintf(&f, fmt, ap); /* Use unlocked __vfprintf */ - *f._p = '\0'; + ret = vasprintf(str, fmt, ap); va_end(ap); - f._bf._base = reallocf(f._bf._base, f._bf._size + 1); - if (f._bf._base == NULL) { - errno = ENOMEM; - ret = -1; - } - *str = (char *)f._bf._base; return (ret); } Index: snprintf.c =================================================================== RCS file: /home/ncvs/src/lib/libc/stdio/snprintf.c,v retrieving revision 1.14 diff -u -w -r1.14 snprintf.c --- snprintf.c 2001/06/16 05:37:57 1.14 +++ snprintf.c 2001/06/16 05:45:30 @@ -64,30 +64,15 @@ va_dcl #endif { - size_t on; - int ret; va_list ap; - FILE f; + int ret; - on = n; - if (n != 0) - n--; - if (n > INT_MAX) - n = INT_MAX; #if __STDC__ va_start(ap, fmt); #else va_start(ap); #endif - f._file = -1; - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *)str; - f._bf._size = f._w = n; - ret = __vfprintf(&f, fmt, ap); - if (on > 0) - *f._p = '\0'; + ret = vsnprintf(str, n, fmt, ap); va_end(ap); - if (str == NULL) - free(f._bf._base); return (ret); } Index: sprintf.c =================================================================== RCS file: /home/ncvs/src/lib/libc/stdio/sprintf.c,v retrieving revision 1.8 diff -u -w -r1.8 sprintf.c --- sprintf.c 2001/06/16 05:37:57 1.8 +++ sprintf.c 2001/06/16 05:45:30 @@ -63,21 +63,13 @@ { int ret; va_list ap; - FILE f; - f._file = -1; - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *)str; - f._bf._size = f._w = INT_MAX; #if __STDC__ va_start(ap, fmt); #else va_start(ap); #endif - ret = __vfprintf(&f, fmt, ap); + ret = vsprintf(str, fmt, ap); va_end(ap); - *f._p = 0; - if (str == NULL) - free(f._bf._base); return (ret); } Index: vsprintf.c =================================================================== RCS file: /home/ncvs/src/lib/libc/stdio/vsprintf.c,v retrieving revision 1.8 diff -u -w -r1.8 vsprintf.c --- vsprintf.c 2001/06/16 05:37:57 1.8 +++ vsprintf.c 2001/06/16 05:45:30 @@ -52,16 +52,5 @@ const char *fmt; _BSD_VA_LIST_ ap; { - int ret; - FILE f; - - f._file = -1; - f._flags = __SWR | __SSTR; - f._bf._base = f._p = (unsigned char *)str; - f._bf._size = f._w = INT_MAX; - ret = __vfprintf(&f, fmt, ap); - *f._p = 0; - if (str == NULL) - free(f._bf._base); - return (ret); + return (vsnprintf(str, INT_MAX, fmt, ap)); } --=-=-=-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message