summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2007-09-02 15:34:29 +0000
committerSebastien Helleu <flashcode@flashtux.org>2007-09-02 15:34:29 +0000
commit68fd7737302cc21d38a326eefcb000daecfb1ba4 (patch)
treebd145190bf7bc7e53411c09e9e12950d88e4147f
parentdd0b1701e3613cf869d7fa72217707afe3dbe7c8 (diff)
downloadweechat-68fd7737302cc21d38a326eefcb000daecfb1ba4.zip
Fixed display bug with some special chars in messages (some words were truncated on screen) (bug #20944)
-rw-r--r--ChangeLog4
-rw-r--r--src/gui/curses/gui-curses-chat.c6
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
{