diff options
Diffstat (limited to 'slock/patches/slock-git-20161012-control-clear.diff')
| -rw-r--r-- | slock/patches/slock-git-20161012-control-clear.diff | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/slock/patches/slock-git-20161012-control-clear.diff b/slock/patches/slock-git-20161012-control-clear.diff new file mode 100644 index 0000000..b9634cd --- /dev/null +++ b/slock/patches/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; + } |
