Added missing Vstr wrappers for asprintf.
This commit is contained in:
@@ -265,6 +265,15 @@ int vstr_wrapper_snprintf(char *str, size_t size, const char *format, ...)
|
|||||||
va_end(args);
|
va_end(args);
|
||||||
return written;
|
return written;
|
||||||
}
|
}
|
||||||
|
int vstr_wrapper_asprintf(char **str, const char *format, ...)
|
||||||
|
{
|
||||||
|
int written;
|
||||||
|
va_list args;
|
||||||
|
va_start(args, format);
|
||||||
|
written = vstr_wrapper_vasprintf(str, format, args);
|
||||||
|
va_end(args);
|
||||||
|
return written;
|
||||||
|
}
|
||||||
static inline int vstr_wrapper_vprintf_internal(int fd, const char *format,
|
static inline int vstr_wrapper_vprintf_internal(int fd, const char *format,
|
||||||
va_list args)
|
va_list args)
|
||||||
{
|
{
|
||||||
@@ -317,6 +326,26 @@ int vstr_wrapper_vsnprintf(char *str, size_t size, const char *format,
|
|||||||
{
|
{
|
||||||
return (size > 0) ? vstr_wrapper_vsnprintf_internal(str, size, format, args) : 0;
|
return (size > 0) ? vstr_wrapper_vsnprintf_internal(str, size, format, args) : 0;
|
||||||
}
|
}
|
||||||
|
int vstr_wrapper_vasprintf(char **str, const char *format, va_list args)
|
||||||
|
{
|
||||||
|
size_t len = 100;
|
||||||
|
int written;
|
||||||
|
*str = malloc(len);
|
||||||
|
while (TRUE)
|
||||||
|
{
|
||||||
|
va_list ac;
|
||||||
|
va_copy(ac, args);
|
||||||
|
written = vstr_wrapper_vsnprintf_internal(*str, len, format, ac);
|
||||||
|
va_end(ac);
|
||||||
|
if (written < len)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
len = written + 1;
|
||||||
|
*str = realloc(*str, len);
|
||||||
|
}
|
||||||
|
return written;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -58,21 +58,25 @@ int vstr_wrapper_printf(const char *format, ...);
|
|||||||
int vstr_wrapper_fprintf(FILE *stream, const char *format, ...);
|
int vstr_wrapper_fprintf(FILE *stream, const char *format, ...);
|
||||||
int vstr_wrapper_sprintf(char *str, const char *format, ...);
|
int vstr_wrapper_sprintf(char *str, const char *format, ...);
|
||||||
int vstr_wrapper_snprintf(char *str, size_t size, const char *format, ...);
|
int vstr_wrapper_snprintf(char *str, size_t size, const char *format, ...);
|
||||||
|
int vstr_wrapper_asprintf(char **str, const char *format, ...);
|
||||||
|
|
||||||
int vstr_wrapper_vprintf(const char *format, va_list ap);
|
int vstr_wrapper_vprintf(const char *format, va_list ap);
|
||||||
int vstr_wrapper_vfprintf(FILE *stream, const char *format, va_list ap);
|
int vstr_wrapper_vfprintf(FILE *stream, const char *format, va_list ap);
|
||||||
int vstr_wrapper_vsprintf(char *str, const char *format, va_list ap);
|
int vstr_wrapper_vsprintf(char *str, const char *format, va_list ap);
|
||||||
int vstr_wrapper_vsnprintf(char *str, size_t size, const char *format, va_list ap);
|
int vstr_wrapper_vsnprintf(char *str, size_t size, const char *format, va_list ap);
|
||||||
|
int vstr_wrapper_vasprintf(char **str, const char *format, va_list ap);
|
||||||
|
|
||||||
#define printf vstr_wrapper_printf
|
#define printf vstr_wrapper_printf
|
||||||
#define fprintf vstr_wrapper_fprintf
|
#define fprintf vstr_wrapper_fprintf
|
||||||
#define sprintf vstr_wrapper_sprintf
|
#define sprintf vstr_wrapper_sprintf
|
||||||
#define snprintf vstr_wrapper_snprintf
|
#define snprintf vstr_wrapper_snprintf
|
||||||
|
#define asprintf vstr_wrapper_asprintf
|
||||||
|
|
||||||
#define vprintf vstr_wrapper_vprintf
|
#define vprintf vstr_wrapper_vprintf
|
||||||
#define vfprintf vstr_wrapper_vfprintf
|
#define vfprintf vstr_wrapper_vfprintf
|
||||||
#define vsprintf vstr_wrapper_vsprintf
|
#define vsprintf vstr_wrapper_vsprintf
|
||||||
#define vsnprintf vstr_wrapper_vsnprintf
|
#define vsnprintf vstr_wrapper_vsnprintf
|
||||||
|
#define vasprintf vstr_wrapper_vasprintf
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user