+static char *xvasprintf(const char *fmt, va_list al)
+ __attribute__((__format__(printf,1,0)));
+static char *xvasprintf(const char *fmt, va_list al) {
+ char *str;
+ int rc= vasprintf(&str,fmt,al);
+ if (rc<0) sysdie("vasprintf(\"%s\",...) failed", fmt);
+ return str;
+}
+static char *xasprintf(const char *fmt, ...)
+ __attribute__((__format__(printf,1,2)));
+static char *xasprintf(const char *fmt, ...) {
+ va_list al;
+ va_start(al,fmt);
+ char *str= xvasprintf(fmt,al);
+ va_end(al);
+ return str;
+}
+