Revert "Simplify movewordedge" - wmenu - 🔧 fork of wmenu
(HTM) git clone git@git.drkhsh.at/wmenu.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit bbfbf8f36c1e7dd1912d0646a3ae271a8c69e6b9
(DIR) parent 9f6a36d73fb185db5b903c7a4e4cabed2990accd
(HTM) Author: adnano <me@adnano.co>
Date: Tue, 27 Feb 2024 12:00:10 -0500
Revert "Simplify movewordedge"
This reverts commit 8bcad262a4d047140767d9467ac5526bb768a95e.
Diffstat:
M menu.c | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
---
(DIR) diff --git a/menu.c b/menu.c
@@ -337,12 +337,23 @@ static size_t nextrune(struct menu *menu, int incr) {
// Move the cursor to the beginning or end of the word, skipping over any preceding whitespace.
static void movewordedge(struct menu *menu, int dir) {
- size_t len = strlen(menu->input);
- while (menu->cursor > 0 && menu->cursor < len && menu->input[nextrune(menu, dir)] == ' ') {
- menu->cursor = nextrune(menu, dir);
- }
- while (menu->cursor > 0 && menu->cursor < len && menu->input[nextrune(menu, dir)] != ' ') {
- menu->cursor = nextrune(menu, dir);
+ if (dir < 0) {
+ // Move to beginning of word
+ while (menu->cursor > 0 && menu->input[nextrune(menu, -1)] == ' ') {
+ menu->cursor = nextrune(menu, -1);
+ }
+ while (menu->cursor > 0 && menu->input[nextrune(menu, -1)] != ' ') {
+ menu->cursor = nextrune(menu, -1);
+ }
+ } else {
+ // Move to end of word
+ size_t len = strlen(menu->input);
+ while (menu->cursor < len && menu->input[menu->cursor] == ' ') {
+ menu->cursor = nextrune(menu, +1);
+ }
+ while (menu->cursor < len && menu->input[menu->cursor] != ' ') {
+ menu->cursor = nextrune(menu, +1);
+ }
}
}