diff options
Diffstat (limited to 'contrib/syslinux-4.02/com32/lib/asprintf.c')
-rw-r--r-- | contrib/syslinux-4.02/com32/lib/asprintf.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/com32/lib/asprintf.c b/contrib/syslinux-4.02/com32/lib/asprintf.c new file mode 100644 index 0000000..ef5b4b2 --- /dev/null +++ b/contrib/syslinux-4.02/com32/lib/asprintf.c @@ -0,0 +1,30 @@ +/* + * asprintf.c + */ + +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> + +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; +} |