summaryrefslogtreecommitdiffstats
path: root/desktop/slock/patches/0005-revert-using-argv0-and-minor-fixup.patch
diff options
context:
space:
mode:
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.patch78
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
+