From 6b5d4811eb6e6a87023121beb59aa4a3761b4955 Mon Sep 17 00:00:00 2001 From: tiyn Date: Thu, 26 Oct 2023 02:36:52 +0200 Subject: [PATCH] added control-clear patch --- config.def.h | 3 +++ slock-git-20161012-control-clear.diff | 27 +++++++++++++++++++++++++++ slock.c | 5 +++-- 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 slock-git-20161012-control-clear.diff diff --git a/config.def.h b/config.def.h index 27cc2d0..d76000c 100644 --- a/config.def.h +++ b/config.def.h @@ -10,3 +10,6 @@ static const char *colorname[NUMCOLS] = { /* treat a cleared input like a wrong password (color) */ static const int failonclear = 1; + +/* allow control key to trigger fail on clear */ +static const int controlkeyclear = 0; diff --git a/slock-git-20161012-control-clear.diff b/slock-git-20161012-control-clear.diff new file mode 100644 index 0000000..b9634cd --- /dev/null +++ b/slock-git-20161012-control-clear.diff @@ -0,0 +1,27 @@ +diff --git a/config.def.h b/config.def.h +index 6fba2b6..933152b 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -10,3 +10,6 @@ static const char *colorname[NUMCOLS] = { + + /* treat a cleared input like a wrong password */ + static const int failonclear = 1; ++ ++/* allow control key to trigger fail on clear */ ++static const int controlkeyclear = 0; +diff --git a/slock.c b/slock.c +index 4d7f06f..15552ef 100644 +--- a/slock.c ++++ b/slock.c +@@ -180,8 +180,9 @@ 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 (controlkeyclear && iscntrl((int)buf[0])) ++ continue; ++ if (num && (len + num < sizeof(passwd))) { + memcpy(passwd + len, buf, num); + len += num; + } diff --git a/slock.c b/slock.c index 5ae738c..da9ffb2 100644 --- a/slock.c +++ b/slock.c @@ -180,8 +180,9 @@ 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 (controlkeyclear && iscntrl((int)buf[0])) + continue; + if (num && (len + num < sizeof(passwd))) { memcpy(passwd + len, buf, num); len += num; }