From owner-svn-src-user@FreeBSD.ORG Thu Jan 17 01:19:14 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id F11A9CA8; Thu, 17 Jan 2013 01:19:14 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C0625D8F; Thu, 17 Jan 2013 01:19:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0H1JEvZ035458; Thu, 17 Jan 2013 01:19:14 GMT (envelope-from sbruno@svn.freebsd.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0H1JEVa035456; Thu, 17 Jan 2013 01:19:14 GMT (envelope-from sbruno@svn.freebsd.org) Message-Id: <201301170119.r0H1JEVa035456@svn.freebsd.org> From: Sean Bruno Date: Thu, 17 Jan 2013 01:19:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r245524 - user/sbruno/pxestuff/lib/libstand X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jan 2013 01:19:15 -0000 Author: sbruno Date: Thu Jan 17 01:19:14 2013 New Revision: 245524 URL: http://svnweb.freebsd.org/changeset/base/245524 Log: Add snprintf() for now to libstand. I don't know if I actually want this in base, but let's just see what its used for and how importand this is. Modified: user/sbruno/pxestuff/lib/libstand/printf.c user/sbruno/pxestuff/lib/libstand/stand.h Modified: user/sbruno/pxestuff/lib/libstand/printf.c ============================================================================== --- user/sbruno/pxestuff/lib/libstand/printf.c Thu Jan 17 01:18:24 2013 (r245523) +++ user/sbruno/pxestuff/lib/libstand/printf.c Thu Jan 17 01:19:14 2013 (r245524) @@ -91,6 +91,31 @@ sprintf(char *buf, const char *cfmt, ... return retval; } +int +snprintf(char *buf, size_t size, const char *cfmt, ...) +{ + int retval; + va_list ap; + size_t maxsize = (size > 1) ? size - 1 : 0; + + if (maxsize == 0) { + buf[0] = '\0'; + return (0); + } + + va_start(ap, cfmt); + retval = kvprintf(cfmt, NULL, (void *)buf, 10, ap); + + if (retval < maxsize) + buf[retval] = '\0'; + else + buf[maxsize] = '\0'; + + va_end(ap); + + return (retval); +} + void vsprintf(char *buf, const char *cfmt, va_list ap) { Modified: user/sbruno/pxestuff/lib/libstand/stand.h ============================================================================== --- user/sbruno/pxestuff/lib/libstand/stand.h Thu Jan 17 01:18:24 2013 (r245523) +++ user/sbruno/pxestuff/lib/libstand/stand.h Thu Jan 17 01:19:14 2013 (r245524) @@ -238,6 +238,7 @@ extern void mallocstats(void); extern int printf(const char *fmt, ...) __printflike(1, 2); extern void vprintf(const char *fmt, __va_list); extern int sprintf(char *buf, const char *cfmt, ...) __printflike(2, 3); +extern int snprintf(char *buf, size_t size, const char *cfmt, ...) __printflike(3, 4); extern void vsprintf(char *buf, const char *cfmt, __va_list); extern void twiddle(void);