From eb6770c71a17ba371b3f345a7e1cd1e31c021190 Mon Sep 17 00:00:00 2001
From: okan
Date: Wed, 28 Nov 2012 14:32:44 +0000
Subject: add xasprintf() for upcoming changes.

---
 calmwm.h  |  5 ++++-
 xmalloc.c | 18 +++++++++++++++++-
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/calmwm.h b/calmwm.h
index a8f1d9f..555db70 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -15,7 +15,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $OpenBSD: calmwm.h,v 1.160 2012/11/28 14:14:44 okan Exp $
+ * $OpenBSD: calmwm.h,v 1.161 2012/11/28 14:32:44 okan Exp $
  */
 
 #ifndef _CALMWM_H_
@@ -492,6 +492,9 @@ void			 u_spawn(char *);
 void			*xcalloc(size_t, size_t);
 void			*xmalloc(size_t);
 char			*xstrdup(const char *);
+int			 xasprintf(char **, const char *, ...)
+			    __attribute__((__format__ (printf, 2, 3)))
+			    __attribute__((__nonnull__ (2)));
 
 /* Externs */
 extern Display				*X_Dpy;
diff --git a/xmalloc.c b/xmalloc.c
index 8e9d22a..c278e72 100644
--- a/xmalloc.c
+++ b/xmalloc.c
@@ -15,7 +15,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $OpenBSD: xmalloc.c,v 1.10 2012/11/16 14:15:48 okan Exp $
+ * $OpenBSD: xmalloc.c,v 1.11 2012/11/28 14:32:44 okan Exp $
  */
 
 #include <sys/param.h>
@@ -69,3 +69,19 @@ xstrdup(const char *str)
 
 	return (p);
 }
+
+int
+xasprintf(char **ret, const char *fmt, ...)
+{
+	va_list	 ap;
+	int	 i;
+
+	va_start(ap, fmt);
+	i = vasprintf(ret, fmt, ap);
+	va_end(ap);
+
+	if (i < 0 || *ret == NULL)
+		err(1, "asprintf");
+
+	return (i);
+}
-- 
cgit v1.2.3-2-gb3c3