From: David Lawrence Ramsey Date: Fri, 19 May 2006 17:50:01 +0000 (+0000) Subject: in display_string(), properly display double-column characters if X-Git-Tag: v1.3.12~152 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=d99b0e1cf39d972f0d683ab5c063718e15a3b589;p=nano.git in display_string(), properly display double-column characters if they're past the first virtual page and their first column is covered by the "$" displayed at the beginning of the line git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3528 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index 51caf105..f49804cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -237,6 +237,10 @@ CVS code - - Add Ctrl-/ as an alias for Ctrl-_. (DLR, found by Benno Schulenberg) - Simplify the if blocks wherever possible. (DLR) + display_string() + - Properly display double-column characters if they're past the + first virtual page and their first column is covered by the + "$" displayed at the beginning of the line. (DLR) edit_draw() - Properly ignore zero-length regexes in multi-line regexes as well as single-line ones. This avoids a segfault when trying diff --git a/src/winio.c b/src/winio.c index cceadb93..c6a404c2 100644 --- a/src/winio.c +++ b/src/winio.c @@ -1810,7 +1810,12 @@ char *display_string(const char *buf, size_t start_col, size_t len, bool } } #ifdef ENABLE_UTF8 - else if (using_utf8() && mbwidth(buf_mb) > 1) { + else if (using_utf8() && mbwidth(buf_mb) == 2) { + if (column >= start_col) { + converted[index++] = ' '; + start_col++; + } + converted[index++] = ' '; start_col++;