diff options
Diffstat (limited to 'node_modules/mmmagic/deps/libmagic/src/vasprintf.c')
-rw-r--r-- | node_modules/mmmagic/deps/libmagic/src/vasprintf.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/node_modules/mmmagic/deps/libmagic/src/vasprintf.c b/node_modules/mmmagic/deps/libmagic/src/vasprintf.c new file mode 100644 index 0000000..9548fd8 --- /dev/null +++ b/node_modules/mmmagic/deps/libmagic/src/vasprintf.c @@ -0,0 +1,27 @@ +// XXX: change by mscdex +// from mingw-w64-crt project + +#include <errno.h> +#include <stdarg.h> +#include <stdlib.h> +#include <stdio.h> + +int vasprintf(char ** ret, const char * format, va_list ap) { + int len; + /* Get Length */ + len = _vsnprintf(NULL, 0, format, ap); + if (len < 0) + return -1; + /* +1 for \0 terminator. */ + *ret = malloc(len + 1); + /* Check malloc fail*/ + if (!*ret) { + errno = ENOMEM; + return -1; + } + /* Write String */ + _vsnprintf(*ret, len + 1, format, ap); + /* Terminate explicitly */ + (*ret)[len] = '\0'; + return len; +} |