Introduction
Introduction Statistics Contact Development Disclaimer Help
applied BSD support patch - slock - simple X display locker utility
git clone git://git.suckless.org/slock
Log
Files
Refs
README
LICENSE
---
commit 0f1157d7e6cabe0394ffc35a0a58a30507af8ebd
parent 2fa12210c9b6795f51a3227aaf417afe7f94fbce
Author: Anselm R. Garbe <[email protected]>
Date: Thu, 12 Oct 2006 08:11:08 +0200
applied BSD support patch
Diffstat:
M config.mk | 5 ++++-
M slock.c | 22 +++++++++++++++++++++-
2 files changed, 25 insertions(+), 2 deletions(-)
---
diff --git a/config.mk b/config.mk
@@ -15,11 +15,14 @@ INCS = -I. -I/usr/include -I${X11INC}
LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11
# flags
-CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\"
+CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\" -DHAVE_SHADOW_H
LDFLAGS = ${LIBS}
#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
#LDFLAGS = -g ${LIBS}
+# On *BSD remove -DHAVE_SHADOW_H from CFLAGS
+# On OpenBSD remove -lcrypt from LIBS
+
# compiler and linker
CC = cc
LD = ${CC}
diff --git a/slock.c b/slock.c
@@ -2,7 +2,13 @@
* See LICENSE file for license details.
*/
#define _XOPEN_SOURCE
+
+#if HAVE_SHADOW_H
#include <shadow.h>
+#else
+#include <pwd.h>
+#endif
+
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -17,7 +23,11 @@ main(int argc, char **argv) {
char curs[] = {0, 0, 0, 0, 0, 0, 0, 0};
char buf[32], passwd[256];
int num, prev_nitem, screen;
+#if HAVE_SHADOW_H
struct spwd *sp;
+#else
+ struct passwd *pw;
+#endif
unsigned int i, len;
Bool running = True;
Cursor invisible;
@@ -33,11 +43,17 @@ main(int argc, char **argv) {
fputs("slock-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", s…
exit(EXIT_SUCCESS);
}
- if(!(sp = getspnam(getenv("USER")))) {
+ if(geteuid() != 0) {
fputs("slock: cannot retrieve password entry (make sure to sui…
exit(EXIT_FAILURE);
}
+#if HAVE_SHADOW_H
+ sp = getspnam(getenv("USER"));
endspent();
+#else
+ pw = getpwuid(getuid());
+ endpwent();
+#endif
if(!(dpy = XOpenDisplay(0))) {
fputs("slock: cannot open display\n", stderr);
exit(EXIT_FAILURE);
@@ -87,7 +103,11 @@ main(int argc, char **argv) {
}
switch(ksym) {
case XK_Return:
+#if HAVE_SHADOW_H
if((running = strncmp(crypt(passwd, sp->sp_pwd…
+#else
+ if((running = strncmp(crypt(passwd, pw->pw_pas…
+#endif
XBell(dpy, 100);
passwd[0] = 0;
break;
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.