From 68fd7737302cc21d38a326eefcb000daecfb1ba4 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sun, 2 Sep 2007 15:34:29 +0000 Subject: [PATCH] Fixed display bug with some special chars in messages (some words were truncated on screen) (bug #20944) --- ChangeLog | 4 +++- src/gui/curses/gui-curses-chat.c | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0c37c5da8..b80b956b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,12 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -ChangeLog - 2007-08-31 +ChangeLog - 2007-09-02 Version 0.2.6 (under dev!): + * fixed display bug with some special chars in messages (some words were + truncated on screen) (bug #20944) * fixed UTF-8 bug with color encoding/decoding * fixed crash when searching text in buffer with ctrl-R (bug #20938) * added string length limit for setup file options diff --git a/src/gui/curses/gui-curses-chat.c b/src/gui/curses/gui-curses-chat.c index 9de15b09a..4bfeadb36 100644 --- a/src/gui/curses/gui-curses-chat.c +++ b/src/gui/curses/gui-curses-chat.c @@ -457,6 +457,8 @@ gui_chat_word_get_next_char (t_gui_window *window, unsigned char *string, memcpy (utf_char, string, char_size); utf_char[char_size] = '\0'; *width_screen = utf8_width_screen (utf_char); + if (*width_screen < 0) + *width_screen = char_size; } return (char *)string + char_size; } @@ -494,7 +496,9 @@ gui_chat_display_word_raw (t_gui_window *window, char *string, int display) { saved_char = next_char[0]; next_char[0] = '\0'; - if (((unsigned char)(prev_char[0]) == 146) && (!prev_char[1])) + if ((((unsigned char)(prev_char[0]) == 146) + || ((unsigned char)(prev_char[0]) == 0x7F)) + && (!prev_char[1])) wprintw (GUI_CURSES(window)->win_chat, "."); else {