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++;