From 20ffdffc03deaf9eccb23b24d042b089e75ac0a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Thu, 15 Aug 2013 11:37:09 -0700 Subject: [PATCH] keyboard: Don't use next_utf8_char() to go back where we came from We go one utf8 char back and then one forward. Just remember the original position instead, which also avoids a warning about potentially dereferencing a NULL return value from next_utf8_char(). --- clients/keyboard.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/clients/keyboard.c b/clients/keyboard.c index 9c5cbc5a..a6f7010a 100644 --- a/clients/keyboard.c +++ b/clients/keyboard.c @@ -456,16 +456,6 @@ prev_utf8_char(const char *s, const char *p) return NULL; } -static const char * -next_utf8_char(const char *p) -{ - if (*p == '\0') - return NULL; - for (++p; (*p & 0xc0) == 0x80; ++p) - ; - return p; -} - static void delete_before_cursor(struct virtual_keyboard *keyboard) { @@ -483,7 +473,7 @@ delete_before_cursor(struct virtual_keyboard *keyboard) return; } - end = next_utf8_char(start); + end = keyboard->surrounding_text + keyboard->surrounding_cursor; wl_input_method_context_delete_surrounding_text(keyboard->context, (start - keyboard->surrounding_text) - keyboard->surrounding_cursor,