From: Tobias Stoeckmann Date: Sat, 25 Mar 2017 20:16:01 +0000 (+0100) Subject: Properly clear the last entered character X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=35633d45672d14bd798c478c45d1a17064701aa9;p=slock.git Properly clear the last entered character When enter is pressed, passwd[len] will be set to '\0'. Pressing backspace is supposed to remove the last entered character. But currently, the clearing has an off-by-one, as in setting passwd[len] to '\0' just like enter would do. You can also verify it by imagining len=1 and that it's impossible to clear passwd[0] by pressing backspace with the current code. Signed-off-by: Tobias Stoeckmann --- diff --git a/slock.c b/slock.c index d55eb3d..5ae738c 100644 --- a/slock.c +++ b/slock.c @@ -177,7 +177,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, break; case XK_BackSpace: if (len) - passwd[len--] = '\0'; + passwd[--len] = '\0'; break; default: if (num && !iscntrl((int)buf[0]) &&