Date: Thu, 17 Jan 2013 01:19:14 +0000 (UTC) From: Sean Bruno <sbruno@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r245524 - user/sbruno/pxestuff/lib/libstand Message-ID: <201301170119.r0H1JEVa035456@svn.freebsd.org>
index | next in thread | raw e-mail
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);help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301170119.r0H1JEVa035456>
