From 72959d1d8b387adae0f0ba94365528a6a747ff64 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Fri, 30 Nov 2012 18:16:49 +0100 Subject: [PATCH] core: fix display of combining chars (patch from Nei) (bug #37775) --- ChangeLog | 3 ++- src/gui/curses/gui-curses-bar-window.c | 2 +- src/gui/curses/gui-curses-chat.c | 2 +- src/gui/gui-chat.c | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 89f563574..cd3e9c865 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,13 @@ WeeChat ChangeLog ================= Sébastien Helleu -v0.4.0-dev, 2012-11-27 +v0.4.0-dev, 2012-11-30 Version 0.4.0 (under dev!) -------------------------- +* core: fix display of combining chars (bug #37775) * core: display default values for changed config options in output of /set * core: stop cmake if gcrypt lib is not found (bug #37671) * core: add incomplete mouse events "event-down" and "event-drag" (task #11840) diff --git a/src/gui/curses/gui-curses-bar-window.c b/src/gui/curses/gui-curses-bar-window.c index d225c9fd9..eb53656dc 100644 --- a/src/gui/curses/gui-curses-bar-window.c +++ b/src/gui/curses/gui-curses-bar-window.c @@ -334,7 +334,7 @@ gui_bar_window_print_string (struct t_gui_bar_window *bar_window, } size_on_screen = utf8_char_size_screen (utf_char); - if (size_on_screen > 0) + if (size_on_screen >= 0) { if (hide_chars_if_scrolling && (x_with_hidden < bar_window->scroll_x)) diff --git a/src/gui/curses/gui-curses-chat.c b/src/gui/curses/gui-curses-chat.c index 838da8c14..6d7828326 100644 --- a/src/gui/curses/gui-curses-chat.c +++ b/src/gui/curses/gui-curses-chat.c @@ -391,7 +391,7 @@ gui_chat_display_word_raw (struct t_gui_window *window, struct t_gui_line *line, { return chars_displayed; } - if (display_char && (size_on_screen > 0)) + if (display_char && (size_on_screen >= 0)) { if (!simulate) { diff --git a/src/gui/gui-chat.c b/src/gui/gui-chat.c index c83fa7c0e..7770c6c91 100644 --- a/src/gui/gui-chat.c +++ b/src/gui/gui-chat.c @@ -242,7 +242,7 @@ gui_chat_string_real_pos (const char *string, int pos) real_pos = string; real_pos_prev = string; ptr_string = string; - while (ptr_string && ptr_string[0] && (pos > 0)) + while (ptr_string && ptr_string[0] && (pos >= 0)) { ptr_string = gui_chat_string_next_char (NULL, NULL, (unsigned char *)ptr_string,