From cd3b4915c3358b93f8dbff531bff82c0cd833c0b Mon Sep 17 00:00:00 2001
From: Connor Lane Smith <cls@lubutu.com>
Date: Fri, 6 May 2011 21:13:02 +0100
Subject: [PATCH] helpful errors

---
 dmenu.c | 4 ++--
 draw.c  | 7 ++++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/dmenu.c b/dmenu.c
index d8ef88f..5be73f7 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -440,9 +440,9 @@ readstdin(void) {
 		if((p = strchr(buf, '\n')))
 			*p = '\0';
 		if(!(item = calloc(1, sizeof *item)))
-			eprintf("cannot malloc %u bytes\n", sizeof *item);
+			eprintf("cannot malloc %u bytes:", sizeof *item);
 		if(!(item->text = strdup(buf)))
-			eprintf("cannot strdup %u bytes\n", strlen(buf)+1);
+			eprintf("cannot strdup %u bytes:", strlen(buf)+1);
 		inputw = MAX(inputw, textw(dc, item->text));
 	}
 }
diff --git a/draw.c b/draw.c
index 80a5074..83ced4b 100644
--- a/draw.c
+++ b/draw.c
@@ -68,6 +68,11 @@ eprintf(const char *fmt, ...) {
 	va_start(ap, fmt);
 	vfprintf(stderr, fmt, ap);
 	va_end(ap);
+
+	if(fmt[strlen(fmt)-1] == ':') {
+		fputc(' ', stderr);
+		perror(NULL);
+	}
 	exit(EXIT_FAILURE);
 }
 
@@ -101,7 +106,7 @@ initdc(void) {
 	if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
 		weprintf("no locale support\n");
 	if(!(dc = calloc(1, sizeof *dc)))
-		eprintf("cannot malloc %u bytes\n", sizeof *dc);
+		eprintf("cannot malloc %u bytes:", sizeof *dc);
 	if(!(dc->dpy = XOpenDisplay(NULL)))
 		eprintf("cannot open display\n");
 
-- 
2.20.1