Implement extensible strings with catprintf.
authorRichard W.M. Jones <rjones@redhat.com>
Thu, 23 Apr 2009 17:52:06 +0000 (18:52 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 23 Apr 2009 17:52:06 +0000 (18:52 +0100)
daemon/daemon.h

index 3f51056..331fc0d 100644 (file)
@@ -92,6 +92,14 @@ extern void send_file_end (int cancel);
 /* only call this if there is a FileOut parameter */
 extern void reply (xdrproc_t xdrp, char *ret);
 
+/* Append to existing string.  If existing string is NULL then
+ * this creates a new string.  This uses an "interesting" variation
+ * of asprintf.
+ */
+
+#define catprintf(strp,fs,...) \
+  asprintf ((strp), "%s" fs, *(strp) ? *(strp) : "", __VA_ARGS__)
+
 /* Helper for functions that need a root filesystem mounted.
  * NB. Cannot be used for FileIn functions.
  */