From ceea629e3ea0a3c8f7befe55e7afa47daa07fdd7 Mon Sep 17 00:00:00 2001 From: Emanuele Giaquinta Date: Fri, 25 May 2007 22:13:24 +0000 Subject: [PATCH] Move the cursor cell-wise in utf8. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4520 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/fe-text/gui-entry.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/fe-text/gui-entry.c b/src/fe-text/gui-entry.c index be778224..c045de83 100644 --- a/src/fe-text/gui-entry.c +++ b/src/fe-text/gui-entry.c @@ -777,6 +777,13 @@ void gui_entry_move_pos(GUI_ENTRY_REC *entry, int pos) if (entry->pos + pos >= 0 && entry->pos + pos <= entry->text_len) entry->pos += pos; + if (entry->utf8) { + int step = pos < 0 ? -1 : 1; + while(mk_wcwidth(entry->text[entry->pos]) == 0 && + entry->pos + step >= 0 && entry->pos + step <= entry->text_len) + entry->pos += step; + } + gui_entry_fix_cursor(entry); gui_entry_draw(entry); }