#include "str_ptr.h" #include #include char * Str_new ( const char * pszConst ) { return (strdup(pszConst)); } void Str_free ( char * * ppsz ) { free((void *) (* ppsz)); } #include #include void Str_appendf ( char * * ppsz, const char * pszFormat, ... ) { va_list args; size_t sizeRequired; va_start(args, pszFormat); sizeRequired = vsnprintf((void *) 0, 0, pszFormat, args) + 1; (* ppsz) = (char *) realloc((void *) (* ppsz), strlen(* ppsz) + sizeRequired ); vsnprintf((* ppsz) + strlen(* ppsz), sizeRequired, pszFormat, args); }