| #define _GNU_SOURCE |
| #include <stdarg.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| #include "xmlrpc_config.h" /* For HAVE_ASPRINTF */ |
| #include "casprintf.h" |
| |
| void GNU_PRINTF_ATTR(2,3) |
| casprintf(const char ** const retvalP, const char * const fmt, ...) { |
| |
| char *retval; |
| |
| va_list varargs; /* mysterious structure used by variable arg facility */ |
| |
| va_start(varargs, fmt); /* start up the mysterious variable arg facility */ |
| |
| #if HAVE_ASPRINTF |
| vasprintf(&retval, fmt, varargs); |
| #else |
| retval = malloc(8192); |
| vsnprintf(retval, 8192, fmt, varargs); |
| #endif |
| *retvalP = retval; |
| } |
| |
| |
| |
| void |
| strfree(const char * const string) { |
| free((void *)string); |
| } |
| |
| |
| |