int create_hash_dir(char **dir, const char *hash, const char *cache_dir);
int create_cachedirtag(const char *dir);
char *format(const char *format, ...) ATTR_FORMAT(printf, 1, 2);
-void x_asprintf(char **ptr, const char *format, ...) ATTR_FORMAT(printf, 2, 3);
char *x_strdup(const char *s);
char *x_strndup(const char *s, size_t n);
void *x_realloc(void *ptr, size_t size);
return ptr;
}
-/*
- this is like asprintf() but dies if the malloc fails
- note that we use vsnprintf in a rather poor way to make this more portable
-*/
-void x_asprintf(char **ptr, const char *format, ...)
-{
- va_list ap;
-
- *ptr = NULL;
- va_start(ap, format);
- if (vasprintf(ptr, format, ap) == -1) {
- fatal("Out of memory in x_asprintf");
- }
- va_end(ap);
-
- if (!*ptr) fatal("Out of memory in x_asprintf");
-}
-
/*
this is like strdup() but dies if the malloc fails
*/