1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#ifndef __ASPRINTF_H
#define __ASPRINTF_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#ifndef HAVE_VASPRINTF
static inline int vasprintf(char **PTR, const char *TEMPLATE, va_list AP)
{
int res;
char buf[16];
res = vsnprintf(buf, 16, TEMPLATE, AP);
if (res > 0) {
*PTR = (char*)malloc(res+1);
res = vsnprintf(*PTR, res+1, TEMPLATE, AP);
}
return res;
}
#endif
#ifndef HAVE_ASPRINTF
static inline int asprintf(char **PTR, const char *TEMPLATE, ...)
{
int res;
va_list AP;
va_start(AP, TEMPLATE);
res = vasprintf(PTR, TEMPLATE, AP);
va_end(AP);
return res;
}
#endif
#endif /* ASPRINTF_H */
|