Add xtalloc_asprintf
authorCarl Worth <cworth@cworth.org>
Thu, 20 May 2010 22:02:03 +0000 (15:02 -0700)
committerCarl Worth <cworth@cworth.org>
Thu, 20 May 2010 22:02:03 +0000 (15:02 -0700)
I expect this to be useful in the upcoming implementation of token pasting.

glcpp.h
xtalloc.c

diff --git a/glcpp.h b/glcpp.h
index 2e93cb981d8470612c985e6ed334e98a543979c8..048a9be76bb4b2ef5013d63fd119f254236b4025 100644 (file)
--- a/glcpp.h
+++ b/glcpp.h
@@ -149,4 +149,7 @@ xtalloc_strdup (const void *t, const char *p);
 char *
 xtalloc_strndup (const void *t, const char *p, size_t n);
 
+char *
+xtalloc_asprintf (const void *t, const char *fmt, ...);
+
 #endif
index d9893ae889309508fe387ae196edbefca090cf59..e52d12ac6b260d1be098d2bd0b5d6abac276f3a2 100644 (file)
--- a/xtalloc.c
+++ b/xtalloc.c
@@ -64,3 +64,21 @@ xtalloc_strndup (const void *t, const char *p, size_t n)
 
        return ret;
 }
+
+char *
+xtalloc_asprintf (const void *t, const char *fmt, ...)
+{
+       va_list ap;
+       char *ret;
+
+       va_start(ap, fmt);
+
+       ret = talloc_vasprintf(t, fmt, ap);
+       if (ret == NULL) {
+               fprintf (stderr, "Out of memory.\n");
+               exit (1);
+       }
+
+       va_end(ap);
+       return ret;
+}