swaylock/include
Johan Malm 11030b7350 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;
2022-03-22 22:11:27 +01:00
..
background-image.h Convert swaylock into standalone project 2019-01-13 21:16:47 -05:00
cairo.h cairo.h: remove redundant prototype 2022-03-20 22:54:39 +01:00
comm.h Check password without blocking 2019-01-17 12:42:13 +01:00
log.h Implement logging and remove wlroots dependency 2019-01-14 23:30:54 -05:00
loop.h Convert swaylock into standalone project 2019-01-13 21:16:47 -05:00
meson.build Convert swaylock into standalone project 2019-01-13 21:16:47 -05:00
pool-buffer.h Remove references to pango 2019-01-23 12:20:24 +00:00
seat.h Implement key repeat 2020-06-19 23:02:23 +02:00
swaylock.h Remove redundant function render_frames() 2022-03-20 22:54:39 +01:00
unicode.h Delete whole utf8 character on backspace 2022-03-22 22:11:27 +01:00