diff options
Diffstat (limited to 'desktop/slock/patches/0005-revert-using-argv0-and-minor-fixup.patch')
-rw-r--r-- | desktop/slock/patches/0005-revert-using-argv0-and-minor-fixup.patch | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/desktop/slock/patches/0005-revert-using-argv0-and-minor-fixup.patch b/desktop/slock/patches/0005-revert-using-argv0-and-minor-fixup.patch new file mode 100644 index 0000000000..d1ae1e9dfa --- /dev/null +++ b/desktop/slock/patches/0005-revert-using-argv0-and-minor-fixup.patch @@ -0,0 +1,78 @@ +From ec46680fe10ffc69007b0a8b29d9e69c72704053 Mon Sep 17 00:00:00 2001 +From: Markus Teich <markus.teich@stusta.mhn.de> +Date: Mon, 15 Feb 2016 14:00:56 +0100 +Subject: [PATCH 5/7] revert using argv0 and minor fixup + +- use hardcoded "slock" instead of argv[0] +- add "slock: " to fprintf calls, where it was missing +- revert `argc--, argv++` shifting +--- + slock.c | 15 ++++++--------- + 1 file changed, 6 insertions(+), 9 deletions(-) + +diff --git a/slock.c b/slock.c +index a0ffed0..2aa395e 100644 +--- a/slock.c ++++ b/slock.c +@@ -46,15 +46,14 @@ static Bool failure = False; + static Bool rr; + static int rrevbase; + static int rrerrbase; +-static char *argv0; + + static void + die(const char *errstr, ...) + { + va_list ap; + ++ fputs("slock: ", stderr); + va_start(ap, errstr); +- fprintf(stderr, "%s: ", argv0); + vfprintf(stderr, errstr, ap); + va_end(ap); + exit(1); +@@ -256,7 +255,7 @@ lockscreen(Display *dpy, int screen) + usleep(1000); + } + if (!len) { +- fprintf(stderr, "unable to grab mouse pointer for screen %d\n", screen); ++ fprintf(stderr, "slock: unable to grab mouse pointer for screen %d\n", screen); + } else { + for (len = 1000; len; len--) { + if (XGrabKeyboard(dpy, lock->root, True, GrabModeAsync, GrabModeAsync, CurrentTime) == GrabSuccess) { +@@ -266,7 +265,7 @@ lockscreen(Display *dpy, int screen) + } + usleep(1000); + } +- fprintf(stderr, "unable to grab keyboard for screen %d\n", screen); ++ fprintf(stderr, "slock: unable to grab keyboard for screen %d\n", screen); + } + /* grabbing one of the inputs failed */ + running = 0; +@@ -283,8 +282,6 @@ main(int argc, char **argv) + Display *dpy; + int screen; + +- argv0 = argv[0], argc--, argv++; +- + #ifdef __linux__ + dontkillme(); + #endif +@@ -317,11 +314,11 @@ main(int argc, char **argv) + return 1; + } + +- if (argc >= 1 && fork() == 0) { ++ if (argc >= 2 && fork() == 0) { + if (dpy) + close(ConnectionNumber(dpy)); +- execvp(argv[0], argv); +- die("execvp %s failed: %s\n", argv[0], strerror(errno)); ++ execvp(argv[1], argv+1); ++ die("execvp %s failed: %s\n", argv[1], strerror(errno)); + } + + /* Everything is now blank. Now wait for the correct password. */ +-- +2.9.2 + |