commit 65b8d5278882310eed758e6fbfd6ab9676db883c
parent ec46680fe10ffc69007b0a8b29d9e69c72704053
Author: Markus Teich <>
Date:   Mon, 15 Feb 2016 14:15:45 +0100

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"

Mslock.1 | 16+++++++++++++---
Mslock.c | 17+++++++++++++++--
2 files changed, 28 insertions(+), 5 deletions(-)

diff --git 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 @@ -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