void *xmalloc(size_t);
void *xcalloc(size_t, size_t);
void *xrealloc(void *, size_t);
+void *xmemdup(const void *, size_t);
char *xstrdup(const char *);
char *xasprintf(const char *format, ...) PRINTF_FORMAT(1, 2);
return p;
}
+void *
+xmemdup(const void *p_, size_t size)
+{
+ void *p = xmalloc(size);
+ memcpy(p, p_, size);
+ return p;
+}
+
char *
-xstrdup(const char *s_)
+xstrdup(const char *s)
{
- size_t size = strlen(s_) + 1;
- char *s = xmalloc(size);
- memcpy(s, s_, size);
- return s;
+ return xmemdup(s, strlen(s) + 1);
}
char *