Introduction
Introduction Statistics Contact Development Disclaimer Help
final fixes and cleanups - slock - simple X display locker utility
git clone git://git.suckless.org/slock
Log
Files
Refs
README
LICENSE
---
commit 6fdf8be2044145c11f7e1eb165613f791c514520
parent 1fd4e7b23e872c16902d222b6c870116c948903c
Author: Anselm R. Garbe <[email protected]>
Date: Sat, 24 Nov 2007 21:17:32 +0100
final fixes and cleanups
Diffstat:
M README | 2 +-
M config.mk | 1 -
M slock.c | 35 +++++++++++++++++------------…
3 files changed, 20 insertions(+), 18 deletions(-)
---
diff --git a/README b/README
@@ -21,4 +21,4 @@ necessary as root):
Running slock
-------------
-Simply invoke the 'slock' command.
+Simply invoke the 'slock' command. To get out of it, enter your password.
diff --git a/config.mk b/config.mk
@@ -5,7 +5,6 @@ VERSION = 0.7
# paths
PREFIX = /usr/local
-MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
diff --git a/slock.c b/slock.c
@@ -7,6 +7,7 @@
#include <ctype.h>
#include <pwd.h>
+#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -16,15 +17,23 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+void
+eprint(const char *errstr, ...) {
+ va_list ap;
+
+ va_start(ap, errstr);
+ vfprintf(stderr, errstr, ap);
+ va_end(ap);
+ exit(EXIT_FAILURE);
+}
+
const char *
get_password() { /* only run as root */
const char *rval;
struct passwd *pw;
- if(geteuid() != 0) {
- fputs("slock: cannot retrieve password entry (make sure to sui…
- exit(EXIT_FAILURE);
- }
+ if(geteuid() != 0)
+ eprint("slock: cannot retrieve password entry (make sure to su…
pw = getpwuid(getuid());
endpwent();
rval = pw->pw_passwd;
@@ -38,10 +47,8 @@ get_password() { /* only run as root */
}
#endif
/* drop privileges */
- if(setgid(pw->pw_gid) < 0 || setuid(pw->pw_uid) < 0) {
- fputs("slock: cannot drop privileges\n",stdout);
- exit(EXIT_FAILURE);
- }
+ if(setgid(pw->pw_gid) < 0 || setuid(pw->pw_uid) < 0)
+ eprint("slock: cannot drop privileges\n");
return rval;
}
@@ -62,15 +69,11 @@ main(int argc, char **argv) {
XEvent ev;
XSetWindowAttributes wa;
- if((argc > 1) && !strncmp(argv[1], "-v", 3)) {
- fputs("slock-"VERSION", © 2006-2007 Anselm R. Garbe\n", stdou…
- exit(EXIT_SUCCESS);
- }
+ if((argc > 1) && !strncmp(argv[1], "-v", 3))
+ eprint("slock-"VERSION", © 2006-2007 Anselm R. Garbe, Sander …
pws = get_password();
- if(!(dpy = XOpenDisplay(0))) {
- fputs("slock: cannot open display\n", stderr);
- exit(EXIT_FAILURE);
- }
+ if(!(dpy = XOpenDisplay(0)))
+ eprint("slock: cannot open display\n");
screen = DefaultScreen(dpy);
root = RootWindow(dpy, screen);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.