Krolyxon
Commit 653a6ee

Branches

Refs →

nsxiv653a6ee

Warn once when external key combo is used and key-handler not installed

Author
Bert Münnich
Date
2014-02-18 21:10 +0100
Committer
Bert Münnich · 2014-02-18 21:10 +0100
Parent
d049391
Commit
653a6ee83b722e430ac3068f53650dd382d9209b

+15 −5

2 files changed

  1. M Makefile +1 −1
  2. M main.c +14 −4
M Makefile View
@@ -1,4 +1,4 @@
1−VERSION = git-20140207
1+VERSION = git-20140218
22
33 PREFIX = /usr/local
44 MANPREFIX = $(PREFIX)/share/man
M main.c View
@@ -86,7 +86,10 @@ struct {
8686 bool open;
8787 } info;
8888
89−char * keyhandler;
89+struct {
90+ char *cmd;
91+ bool warned;
92+} keyhandler;
9093
9194 timeout_t timeouts[] = {
9295 { { 0, 0 }, false, redraw },
@@ -453,7 +456,14 @@ void run_key_handler(const char *key, unsigned int mask)
453456 char kstr[32];
454457 struct stat oldst, newst;
455458
456− if (keyhandler == NULL || key == NULL)
459+ if (keyhandler.cmd == NULL) {
460+ if (!keyhandler.warned) {
461+ warn("key handler not installed");
462+ keyhandler.warned = true;
463+ }
464+ return;
465+ }
466+ if (key == NULL)
457467 return;
458468
459469 snprintf(kstr, sizeof(kstr), "%s%s%s%s",
@@ -464,7 +474,7 @@ void run_key_handler(const char *key, unsigned int mask)
464474 stat(files[n].path, &oldst);
465475
466476 if ((pid = fork()) == 0) {
467− execl(keyhandler, keyhandler, kstr, files[n].path, NULL);
477+ execl(keyhandler.cmd, keyhandler.cmd, kstr, files[n].path, NULL);
468478 warn("could not exec key handler");
469479 exit(EXIT_FAILURE);
470480 } else if (pid < 0) {
@@ -810,7 +820,7 @@ int main(int argc, char **argv)
810820 dsuffix = "/.config";
811821 }
812822 if (homedir != NULL) {
813− char **cmd[] = { &info.cmd, &keyhandler };
823+ char **cmd[] = { &info.cmd, &keyhandler.cmd };
814824 const char *name[] = { "image-info", "key-handler" };
815825
816826 for (i = 0; i < ARRLEN(cmd); i++) {