1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
From 65b8d5278882310eed758e6fbfd6ab9676db883c Mon Sep 17 00:00:00 2001
From: Markus Teich <markus.teich@stusta.mhn.de>
Date: Mon, 15 Feb 2016 14:15:45 +0100
Subject: [PATCH 6/7] Revert "No need for usage()"
This reverts most of commit a6dc051e3744ce5b14c54d2d246d3e8258207e76 and fixes
some related stuff:
- keep spelling fixes from original commit
- make -h and -v also work when followed by more arguments
- any unknown flag prints usage
- fix output of -v to display "slock: version 1.3" instead of "slock: slock-1.3"
---
slock.1 | 16 +++++++++++++---
slock.c | 17 +++++++++++++++--
2 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/slock.1 b/slock.1
index 467194d..0ef3e15 100644
--- a/slock.1
+++ b/slock.1
@@ -3,17 +3,27 @@
slock \- simple X screen locker
.SH SYNOPSIS
.B slock
-.RB [
-.IR cmd
-]
+.RB [ \-v
+|
+.IR cmd ]
.SH DESCRIPTION
.B slock
is an X screen locker. If provided,
.IR cmd
is executed after the screen has been locked.
+.SH OPTIONS
+.TP
+.B \-v
+prints version information to stdout, then exits.
.SH EXAMPLES
$ slock /usr/sbin/s2ram
.SH CUSTOMIZATION
.B slock
can be customized by creating a custom config.h and (re)compiling the source
code. This keeps it fast, secure and simple.
+.SH AUTHORS
+See the LICENSE file for the authors.
+.SH LICENSE
+See the LICENSE file for the terms of redistribution.
+.SH BUGS
+Please report them.
diff --git a/slock.c b/slock.c
index 2aa395e..c9cdee2 100644
--- a/slock.c
+++ b/slock.c
@@ -273,15 +273,28 @@ lockscreen(Display *dpy, int screen)
return NULL;
}
-int
-main(int argc, char **argv)
+static void
+usage(void)
{
+ fprintf(stderr, "usage: slock [-v|POST_LOCK_CMD]\n");
+ exit(1);
+}
+
+int
+main(int argc, char **argv) {
#ifndef HAVE_BSD_AUTH
const char *pws;
#endif
Display *dpy;
int screen;
+ if ((argc >= 2) && !strcmp("-v", argv[1]))
+ die("version %s, © 2006-2016 slock engineers\n", VERSION);
+
+ /* treat first argument starting with a '-' as option */
+ if ((argc >= 2) && argv[1][0] == '-')
+ usage();
+
#ifdef __linux__
dontkillme();
#endif
--
2.9.2
|