diff options
-rw-r--r-- | src/common.cpp | 7 | ||||
-rw-r--r-- | src/screen.cpp | 1 |
2 files changed, 3 insertions, 5 deletions
diff --git a/src/common.cpp b/src/common.cpp index ea1cc4e3..78d0e238 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -525,13 +525,10 @@ wcstring wsetlocale(int category, const wchar_t *locale) /* Use ellipsis if on known unicode system, otherwise use $ */ - char *ctype = setlocale(LC_CTYPE, NULL); - bool unicode = (strstr(ctype, ".UTF") || strstr(ctype, ".utf")); - - ellipsis_char = unicode ? L'\x2026' : L'$'; + ellipsis_char = (wcwidth(L'\x2026') > 0) ? L'\x2026' : L'$'; // U+23CE is the "return" character - omitted_newline_char = unicode ? L'\x23CE' : L'~'; + omitted_newline_char = (wcwidth(L'\x23CE') > 0) ? L'\x23CE' : L'~'; if (!res) return wcstring(); diff --git a/src/screen.cpp b/src/screen.cpp index 1971bb57..e248079a 100644 --- a/src/screen.cpp +++ b/src/screen.cpp @@ -1424,6 +1424,7 @@ void s_reset(screen_t *s, screen_reset_mode_t mode) wcstring abandon_line_string; abandon_line_string.reserve(screen_width + 32); //should be enough + /* Don't need to check for wcwidth errors; this is done when setting up omitted_newline_char in common.cpp */ int non_space_width = wcwidth(omitted_newline_char); if (screen_width >= non_space_width) { |