aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--slock.c15
1 files 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;
46static Bool rr; 46static Bool rr;
47static int rrevbase; 47static int rrevbase;
48static int rrerrbase; 48static int rrerrbase;
49static char *argv0;
50 49
51static void 50static void
52die(const char *errstr, ...) 51die(const char *errstr, ...)
53{ 52{
54 va_list ap; 53 va_list ap;
55 54
55 fputs("slock: ", stderr);
56 va_start(ap, errstr); 56 va_start(ap, errstr);
57 fprintf(stderr, "%s: ", argv0);
58 vfprintf(stderr, errstr, ap); 57 vfprintf(stderr, errstr, ap);
59 va_end(ap); 58 va_end(ap);
60 exit(1); 59 exit(1);
@@ -256,7 +255,7 @@ lockscreen(Display *dpy, int screen)
256 usleep(1000); 255 usleep(1000);
257 } 256 }
258 if (!len) { 257 if (!len) {
259 fprintf(stderr, "unable to grab mouse pointer for screen %d\n", screen); 258 fprintf(stderr, "slock: unable to grab mouse pointer for screen %d\n", screen);
260 } else { 259 } else {
261 for (len = 1000; len; len--) { 260 for (len = 1000; len; len--) {
262 if (XGrabKeyboard(dpy, lock->root, True, GrabModeAsync, GrabModeAsync, CurrentTime) == GrabSuccess) { 261 if (XGrabKeyboard(dpy, lock->root, True, GrabModeAsync, GrabModeAsync, CurrentTime) == GrabSuccess) {
@@ -266,7 +265,7 @@ lockscreen(Display *dpy, int screen)
266 } 265 }
267 usleep(1000); 266 usleep(1000);
268 } 267 }
269 fprintf(stderr, "unable to grab keyboard for screen %d\n", screen); 268 fprintf(stderr, "slock: unable to grab keyboard for screen %d\n", screen);
270 } 269 }
271 /* grabbing one of the inputs failed */ 270 /* grabbing one of the inputs failed */
272 running = 0; 271 running = 0;
@@ -283,8 +282,6 @@ main(int argc, char **argv)
283 Display *dpy; 282 Display *dpy;
284 int screen; 283 int screen;
285 284
286 argv0 = argv[0], argc--, argv++;
287
288#ifdef __linux__ 285#ifdef __linux__
289 dontkillme(); 286 dontkillme();
290#endif 287#endif
@@ -317,11 +314,11 @@ main(int argc, char **argv)
317 return 1; 314 return 1;
318 } 315 }
319 316
320 if (argc >= 1 && fork() == 0) { 317 if (argc >= 2 && fork() == 0) {
321 if (dpy) 318 if (dpy)
322 close(ConnectionNumber(dpy)); 319 close(ConnectionNumber(dpy));
323 execvp(argv[0], argv); 320 execvp(argv[1], argv+1);
324 die("execvp %s failed: %s\n", argv[0], strerror(errno)); 321 die("execvp %s failed: %s\n", argv[1], strerror(errno));
325 } 322 }
326 323
327 /* Everything is now blank. Now wait for the correct password. */ 324 /* Everything is now blank. Now wait for the correct password. */