Преглед изворни кода

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

master
Bert Münnich пре 11 година
родитељ
комит
653a6ee83b
2 измењених фајлова са 15 додато и 5 уклоњено
  1. +1
    -1
      Makefile
  2. +14
    -4
      main.c

+ 1
- 1
Makefile Прегледај датотеку

@@ -1,4 +1,4 @@
VERSION = git-20140207
VERSION = git-20140218

PREFIX = /usr/local
MANPREFIX = $(PREFIX)/share/man


+ 14
- 4
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…
Откажи
Сачувај