Warn once when external key combo is used and key-handler not installed
This commit is contained in:
parent
d049391916
commit
653a6ee83b
2
Makefile
2
Makefile
|
@ -1,4 +1,4 @@
|
|||
VERSION = git-20140207
|
||||
VERSION = git-20140218
|
||||
|
||||
PREFIX = /usr/local
|
||||
MANPREFIX = $(PREFIX)/share/man
|
||||
|
|
18
main.c
18
main.c
|
@ -86,7 +86,10 @@ struct {
|
|||
bool open;
|
||||
} info;
|
||||
|
||||
char * keyhandler;
|
||||
struct {
|
||||
char *cmd;
|
||||
bool warned;
|
||||
} keyhandler;
|
||||
|
||||
timeout_t timeouts[] = {
|
||||
{ { 0, 0 }, false, redraw },
|
||||
|
@ -453,7 +456,14 @@ void run_key_handler(const char *key, unsigned int mask)
|
|||
char kstr[32];
|
||||
struct stat oldst, newst;
|
||||
|
||||
if (keyhandler == NULL || key == NULL)
|
||||
if (keyhandler.cmd == NULL) {
|
||||
if (!keyhandler.warned) {
|
||||
warn("key handler not installed");
|
||||
keyhandler.warned = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (key == NULL)
|
||||
return;
|
||||
|
||||
snprintf(kstr, sizeof(kstr), "%s%s%s%s",
|
||||
|
@ -464,7 +474,7 @@ void run_key_handler(const char *key, unsigned int mask)
|
|||
stat(files[n].path, &oldst);
|
||||
|
||||
if ((pid = fork()) == 0) {
|
||||
execl(keyhandler, keyhandler, kstr, files[n].path, NULL);
|
||||
execl(keyhandler.cmd, keyhandler.cmd, kstr, files[n].path, NULL);
|
||||
warn("could not exec key handler");
|
||||
exit(EXIT_FAILURE);
|
||||
} else if (pid < 0) {
|
||||
|
@ -810,7 +820,7 @@ int main(int argc, char **argv)
|
|||
dsuffix = "/.config";
|
||||
}
|
||||
if (homedir != NULL) {
|
||||
char **cmd[] = { &info.cmd, &keyhandler };
|
||||
char **cmd[] = { &info.cmd, &keyhandler.cmd };
|
||||
const char *name[] = { "image-info", "key-handler" };
|
||||
|
||||
for (i = 0; i < ARRLEN(cmd); i++) {
|
||||
|
|
Loading…
Reference in New Issue