X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/eea99fc0ac0ca9333863fca80062f22fdd953468..9ca1ac62f9aa6e01afb3697cc4b966d085be9d3a:/slstatus.c diff --git a/slstatus.c b/slstatus.c index b4eb761..19bc127 100644 --- a/slstatus.c +++ b/slstatus.c @@ -10,6 +10,7 @@ #include #include "arg.h" +#include "slstatus.h" #include "util.h" struct arg { @@ -19,15 +20,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; } @@ -84,8 +87,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';