X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/eea99fc0ac0ca9333863fca80062f22fdd953468..c3ce506b7fe4c9615c8bf1b6936dd235d6c04750:/slstatus.c

diff --git a/slstatus.c b/slstatus.c
index b4eb761..b05d915 100644
--- a/slstatus.c
+++ b/slstatus.c
@@ -1,6 +1,4 @@
 /* See LICENSE file for copyright and license details. */
-#include <err.h>
-#include <errno.h>
 #include <locale.h>
 #include <signal.h>
 #include <stdio.h>
@@ -10,6 +8,7 @@
 #include <X11/Xlib.h>
 
 #include "arg.h"
+#include "slstatus.h"
 #include "util.h"
 
 struct arg {
@@ -19,15 +18,17 @@ struct arg {
 };
 
 char *argv0;
+char buf[1024];
 static unsigned short int done;
 static Display *dpy;
 
-#include "slstatus.h"
 #include "config.h"
 
 static void
 terminate(const int signo)
 {
+	(void)signo;
+
 	done = 1;
 }
 
@@ -75,7 +76,7 @@ main(int argc, char *argv[])
 	sigaction(SIGTERM, &act, NULL);
 
 	if (!sflag && !(dpy = XOpenDisplay(NULL))) {
-		fprintf(stderr, "slstatus: cannot open display");
+		fprintf(stderr, "Cannot open display");
 		return 1;
 	}
 
@@ -84,8 +85,10 @@ main(int argc, char *argv[])
 
 		status[0] = '\0';
 		for (i = len = 0; i < LEN(args); i++) {
+			const char * res = args[i].func(args[i].args);
+			res = (res == NULL) ? unknown_str : res;
 			len += snprintf(status + len, sizeof(status) - len,
-			                args[i].fmt, args[i].func(args[i].args));
+			                args[i].fmt, res);
 
 			if (len >= sizeof(status)) {
 				status[sizeof(status) - 1] = '\0';