diff --git a/src/xpdev/xpprintf.c b/src/xpdev/xpprintf.c index dd0021440df343e77e35e9f6acb48dba7f845dc3..d38a6aad2c6c4472ca2d4bc3d8433480ee002d11 100644 --- a/src/xpdev/xpprintf.c +++ b/src/xpdev/xpprintf.c @@ -45,25 +45,35 @@ #include "gen_defs.h" #if defined(_MSC_VER) || defined(__MSVCRT__) -int asprintf(char **strptr, char *format, ...) +int DLLCALL vasprintf(char **strptr, char *format, va_list va) { - va_list va; va_list va2; int ret; if (strptr == NULL) return -1; - va_start(va, format); va_copy(va2, va); ret = _vscprintf(format, va); *strptr = (char *)malloc(ret+1); if (*strptr == NULL) return -1; ret = vsprintf(*strptr, format, va2); - va_end(va); va_end(va2); return ret; } + +int DLLCALL asprintf(char **strptr, char *format, ...) +{ + va_list va; + int ret; + + if (strptr == NULL) + return -1; + va_start(va, format); + ret=vasprintf(strptr, format, va); + va_end(va); + return ret; +} #endif /* Maximum length of a format specifier including the % */ diff --git a/src/xpdev/xpprintf.h b/src/xpdev/xpprintf.h index 8784f517d06b1e55f2d59f9726d55ce78c01968e..7033f66f229a4b7dc059b6d11a620448e91a93e5 100644 --- a/src/xpdev/xpprintf.h +++ b/src/xpdev/xpprintf.h @@ -79,6 +79,8 @@ DLLEXPORT char* DLLCALL xp_asprintf_end(char *format, size_t *endlen); DLLEXPORT char* DLLCALL xp_asprintf(const char *format, ...); DLLEXPORT char* DLLCALL xp_vasprintf(const char *format, va_list va); DLLEXPORT int DLLCALL xp_printf_get_type(const char *format); +DLLEXPORT int DLLCALL vasprintf(char **strptr, char *format, va_list va); +DLLEXPORT int DLLCALL asprintf(char **strptr, char *format, ...); #if defined(__cplusplus) } #endif