Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Delete whole utf8 character on backspace
...rather than just the last byte of the password buffer. Demostrate the need for this by taking the following steps: - Apply the patch below (before this commit). - Set keyboard layout to one where utf8 characters longer than one byte can be obtained, for example åäö using Swedish layout (XKB_DEFAULT_LAYOUT=se). - Type "åäö" then press backspace and observe that it takes two backspaces to delete each character fully, and therefore six backspaces to fully clear the password buffer. diff --git a/password.c b/password.c index e1a1d9a..b640cd3 100644 --- a/password.c +++ b/password.c @@ -29,6 +29,7 @@ void clear_password_buffer(struct swaylock_password *pw) { static bool backspace(struct swaylock_password *pw) { if (pw->len != 0) { pw->buffer[--pw->len] = 0; + fprintf(stderr, "%s\n", pw->buffer); return true; } return false;
- Loading branch information