From bad4bd0bef050b3a3b370c66efce0be0097ebfcc Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Thu, 29 Mar 2007 12:44:42 +0000 Subject: [PATCH] Fixed color bug with IRC messages displayed by plugins (bug #19442) --- ChangeLog | 3 ++- src/plugins/plugins-interface.c | 16 ++++++++++++---- weechat/ChangeLog | 3 ++- weechat/src/plugins/plugins-interface.c | 16 ++++++++++++---- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 876e88472..9c6222810 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,11 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -ChangeLog - 2007-03-25 +ChangeLog - 2007-03-29 Version 0.2.4 (under dev!): + * fixed color bug with IRC messages displayed by plugins (bug #19442) * fixed topic charset, now using channel charset if defined (bug #19386) * renamed log file for DCC chat (now .dcc..weechatlog) * fixed crash when closing a pv if a DCC chat is open on same nick diff --git a/src/plugins/plugins-interface.c b/src/plugins/plugins-interface.c index 439f1295c..c54caac70 100644 --- a/src/plugins/plugins-interface.c +++ b/src/plugins/plugins-interface.c @@ -166,7 +166,7 @@ weechat_plugin_print (t_weechat_plugin *plugin, t_gui_buffer *ptr_buffer; va_list argptr; static char buf[8192]; - char *buf2; + char *buf2, *buf3; if (!plugin || !message) return; @@ -177,10 +177,14 @@ weechat_plugin_print (t_weechat_plugin *plugin, va_end (argptr); buf2 = weechat_iconv_to_internal (plugin->charset, buf); + buf3 = (char *)gui_color_decode ((unsigned char *)((buf2) ? buf2 : buf), + cfg_irc_colors_receive); irc_display_prefix (NULL, ptr_buffer, PREFIX_PLUGIN); - gui_printf (ptr_buffer, "%s\n", (buf2) ? buf2 : buf); + gui_printf (ptr_buffer, "%s\n", (buf3) ? buf3 : ((buf2) ? buf2 : buf)); if (buf2) free (buf2); + if (buf3) + free (buf3); } /* @@ -192,7 +196,7 @@ weechat_plugin_print_server (t_weechat_plugin *plugin, char *message, ...) { va_list argptr; static char buf[8192]; - char *buf2; + char *buf2, *buf3; if (!plugin || !message) return; @@ -202,10 +206,14 @@ weechat_plugin_print_server (t_weechat_plugin *plugin, char *message, ...) va_end (argptr); buf2 = weechat_iconv_to_internal (plugin->charset, buf); + buf3 = (char *)gui_color_decode ((unsigned char *)((buf2) ? buf2 : buf), + cfg_irc_colors_receive); irc_display_prefix (NULL, NULL, PREFIX_PLUGIN); - gui_printf (NULL, "%s\n", (buf2) ? buf2 : buf); + gui_printf (NULL, "%s\n", (buf3) ? buf3 : ((buf2) ? buf2 : buf)); if (buf2) free (buf2); + if (buf3) + free (buf3); } /* diff --git a/weechat/ChangeLog b/weechat/ChangeLog index 876e88472..9c6222810 100644 --- a/weechat/ChangeLog +++ b/weechat/ChangeLog @@ -1,10 +1,11 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -ChangeLog - 2007-03-25 +ChangeLog - 2007-03-29 Version 0.2.4 (under dev!): + * fixed color bug with IRC messages displayed by plugins (bug #19442) * fixed topic charset, now using channel charset if defined (bug #19386) * renamed log file for DCC chat (now .dcc..weechatlog) * fixed crash when closing a pv if a DCC chat is open on same nick diff --git a/weechat/src/plugins/plugins-interface.c b/weechat/src/plugins/plugins-interface.c index 439f1295c..c54caac70 100644 --- a/weechat/src/plugins/plugins-interface.c +++ b/weechat/src/plugins/plugins-interface.c @@ -166,7 +166,7 @@ weechat_plugin_print (t_weechat_plugin *plugin, t_gui_buffer *ptr_buffer; va_list argptr; static char buf[8192]; - char *buf2; + char *buf2, *buf3; if (!plugin || !message) return; @@ -177,10 +177,14 @@ weechat_plugin_print (t_weechat_plugin *plugin, va_end (argptr); buf2 = weechat_iconv_to_internal (plugin->charset, buf); + buf3 = (char *)gui_color_decode ((unsigned char *)((buf2) ? buf2 : buf), + cfg_irc_colors_receive); irc_display_prefix (NULL, ptr_buffer, PREFIX_PLUGIN); - gui_printf (ptr_buffer, "%s\n", (buf2) ? buf2 : buf); + gui_printf (ptr_buffer, "%s\n", (buf3) ? buf3 : ((buf2) ? buf2 : buf)); if (buf2) free (buf2); + if (buf3) + free (buf3); } /* @@ -192,7 +196,7 @@ weechat_plugin_print_server (t_weechat_plugin *plugin, char *message, ...) { va_list argptr; static char buf[8192]; - char *buf2; + char *buf2, *buf3; if (!plugin || !message) return; @@ -202,10 +206,14 @@ weechat_plugin_print_server (t_weechat_plugin *plugin, char *message, ...) va_end (argptr); buf2 = weechat_iconv_to_internal (plugin->charset, buf); + buf3 = (char *)gui_color_decode ((unsigned char *)((buf2) ? buf2 : buf), + cfg_irc_colors_receive); irc_display_prefix (NULL, NULL, PREFIX_PLUGIN); - gui_printf (NULL, "%s\n", (buf2) ? buf2 : buf); + gui_printf (NULL, "%s\n", (buf3) ? buf3 : ((buf2) ? buf2 : buf)); if (buf2) free (buf2); + if (buf3) + free (buf3); } /*