diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libugly/asprintf.c')
-rw-r--r-- | mdk-stage1/dietlibc/libugly/asprintf.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libugly/asprintf.c b/mdk-stage1/dietlibc/libugly/asprintf.c new file mode 100644 index 000000000..d10c20b4a --- /dev/null +++ b/mdk-stage1/dietlibc/libugly/asprintf.c @@ -0,0 +1,22 @@ +#include <stdarg.h> +#include <linux/types.h> +#include <stdlib.h> +#include "dietwarning.h" + +extern int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr); + +int asprintf(char **s, const char *format,...) +{ + int n; + va_list arg_ptr; + va_start(arg_ptr, format); + n=vsnprintf(0,1000000,format,arg_ptr); + va_end (arg_ptr); + va_start (arg_ptr, format); + if ((*s=malloc(n+2))) { + n=vsnprintf(*s,n+1,format,arg_ptr); + va_end(arg_ptr); + return n; + } + return -1; +} |