From: hpa Date: Tue, 21 Dec 2004 04:56:37 +0000 (+0000) Subject: Add [v]asprintf X-Git-Tag: syslinux-3.11~250 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d4318da1d4c6a337264b1c5248601f35e6e6eb9e;p=profile%2Fivi%2Fsyslinux.git Add [v]asprintf --- diff --git a/com32/lib/asprintf.c b/com32/lib/asprintf.c new file mode 100644 index 0000000..6002b57 --- /dev/null +++ b/com32/lib/asprintf.c @@ -0,0 +1,30 @@ +/* + * asprintf.c + */ + +#include +#include +#include + +int asprintf(char **bufp, const char *format, ...) +{ + va_list ap, ap1; + int rv; + int bytes; + char *p; + + va_start(ap, format); + va_copy(ap1, ap); + + bytes = vsnprintf(NULL, 0, format, ap1) + 1; + va_end(ap1); + + *bufp = p = malloc(bytes); + if ( !p ) + return -1; + + rv = vsnprintf(p, bytes, format, ap); + va_end(ap); + + return rv; +} diff --git a/com32/lib/vasprintf.c b/com32/lib/vasprintf.c new file mode 100644 index 0000000..657bfdc --- /dev/null +++ b/com32/lib/vasprintf.c @@ -0,0 +1,25 @@ +/* + * vasprintf.c + */ + +#include +#include +#include + +int vasprintf(char **bufp, const char *format, va_list ap) +{ + va_list ap1; + int bytes; + char *p; + + va_copy(ap1, ap); + + bytes = vsnprintf(NULL, 0, format, ap1) + 1; + va_end(ap1); + + *bufp = p = malloc(bytes); + if ( !p ) + return -1; + + return vsnprintf(p, bytes, format, ap); +}