slock

My build of the suckless screen locker.
git clone git://git.alex.balgavy.eu/slock.git
Log | Files | Refs | README | LICENSE

commit 89a174719bab631a6b9c229923c47f30c73f6a83
parent 37c3fae853298e13aa54cad4b27e87eb977e09c3
Author: Alex Balgavy <alexander.balgavy@spaceapplications.com>
Date:   Fri,  1 Aug 2025 15:39:05 +0200

Don't fail on clear

Diffstat:
Mslock.c | 10++++------
1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/slock.c b/slock.c @@ -316,16 +316,14 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, passwd[--len] = '\0'; break; default: - // if (num && !iscntrl((int)buf[0]) && - // (len + num < sizeof(passwd))) { if (ksym == XK_u && ev.xkey.state & ControlMask) { - printf("Clearing!\n"); explicit_bzero(&passwd, sizeof(passwd)); + failure = 0; len = 0; - continue; + break; } if (controlkeyclear && iscntrl((int)buf[0])) - continue; + continue; if (num && (len + num < sizeof(passwd))) { memcpy(passwd + len, buf, num); len += num; @@ -333,7 +331,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, break; } color = len ? (len%2 ? INPUT : INPUT_ALT) - : ((failure || failonclear) ? FAILED : INIT); + : ((failure || failonclear) ? FAILED : INIT); if (running && oldc != color) { for (screen = 0; screen < nscreens; screen++) { drawlogo(dpy, locks[screen], color);