From 02ca8e972bbf1b3a5b66df9ba0bd0e77903ba6d8 Mon Sep 17 00:00:00 2001 From: C. McEnroe Date: Sun, 9 Feb 2020 07:32:35 -0500 Subject: Use iswspace for word movement --- edit.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/edit.c b/edit.c index 16fa910..fe79e76 100644 --- a/edit.c +++ b/edit.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "chat.h" @@ -150,11 +151,11 @@ void edit(size_t id, enum Edit op, wchar_t ch) { break; case EditNext: if (pos < len) pos++; break; case EditPrevWord: { if (pos) pos--; - while (pos && buf[pos - 1] != L' ') pos--; + while (pos && !iswspace(buf[pos - 1])) pos--; } break; case EditNextWord: { if (pos < len) pos++; - while (pos < len && buf[pos] != L' ') pos++; + while (pos < len && !iswspace(buf[pos])) pos++; } break; case EditDeleteHead: delete(0, pos); pos = 0; @@ -164,14 +165,14 @@ void edit(size_t id, enum Edit op, wchar_t ch) { break; case EditDeletePrevWord: { if (!pos) break; size_t word = pos - 1; - while (word && buf[word - 1] != L' ') word--; + while (word && !iswspace(buf[word - 1])) word--; delete(word, pos - word); pos = word; } break; case EditDeleteNextWord: { if (pos == len) break; size_t word = pos + 1; - while (word < len && buf[word] != L' ') word++; + while (word < len && !iswspace(buf[word])) word++; delete(pos, word - pos); } break; case EditPaste: { -- cgit 1.4.1-2-gfad0