roken: Add easprintf() and evasprintf() utils
Like emalloc() and ecalloc(): errx on ENOMEM.
This commit is contained in:
@@ -563,6 +563,18 @@ ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
|
||||
__attribute__ ((__format__ (__printf__, 3, 0)));
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_EVASPRINTF) || defined(NEED_EVASPRINTF_PROTO)
|
||||
#define evasprintf rk_evasprintf
|
||||
ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL
|
||||
rk_evasprintf(const char *format, va_list args);
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_EASPRINTF) || defined(NEED_EASPRINTF_PROTO)
|
||||
#define easprintf rk_easprintf
|
||||
ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL
|
||||
rk_easprintf(const char *format, ...);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRDUP
|
||||
#define strdup rk_strdup
|
||||
ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL strdup(const char *);
|
||||
|
@@ -701,3 +701,30 @@ rk_vsnprintf (char *str, size_t sz, const char *format, va_list args)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_EVASPRINTF) || defined(TEST_SNPRINTF)
|
||||
ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL
|
||||
rk_evasprintf(const char *format, va_list args)
|
||||
{
|
||||
char *s = NULL;
|
||||
|
||||
if (vasprintf(&s, format, args) == -1 || s == NULL)
|
||||
errx(1, "Out of memory");
|
||||
return s;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_EASPRINTF) || defined(TEST_SNPRINTF)
|
||||
ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL
|
||||
rk_easprintf(const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
char *s = NULL;
|
||||
|
||||
va_start(args, format);
|
||||
if (vasprintf(&s, format, args) == -1 || s == NULL)
|
||||
errx(1, "Out of memory");
|
||||
va_end(args);
|
||||
return s;
|
||||
}
|
||||
#endif
|
||||
|
@@ -52,12 +52,14 @@ HEIMDAL_ROKEN_2.0 {
|
||||
rk_dns_string_to_type;
|
||||
rk_dns_type_to_string;
|
||||
rk_dumpdata;
|
||||
rk_easprintf;
|
||||
rk_ecalloc;
|
||||
rk_emalloc;
|
||||
rk_eread;
|
||||
rk_erealloc;
|
||||
rk_esetenv;
|
||||
rk_estrdup;
|
||||
rk_evasprintf;
|
||||
rk_ewrite;
|
||||
rk_flock;
|
||||
rk_fnmatch;
|
||||
|
Reference in New Issue
Block a user