From d99b0e1cf39d972f0d683ab5c063718e15a3b589 Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Fri, 19 May 2006 17:50:01 +0000 Subject: [PATCH] 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 --- ChangeLog | 4 ++++ src/winio.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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++; -- 2.39.5