mirror of
https://github.com/weechat/weechat.git
synced 2026-06-28 05:46:38 +02:00
irc: fix parsing of message 332 when no topic neither colon are found (bug with bip proxy)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
WeeChat ChangeLog
|
||||
=================
|
||||
Sébastien Helleu <flashcode@flashtux.org>
|
||||
v0.3.5-rc2, 2011-05-02
|
||||
v0.3.5-rc2, 2011-05-06
|
||||
|
||||
|
||||
Version 0.3.5 (under dev!)
|
||||
@@ -63,6 +63,8 @@ Version 0.3.5 (under dev!)
|
||||
(plugins: irc, relay, xfer, scripts)
|
||||
* aspell: add section "option" in aspell.conf for speller options (task #11083)
|
||||
* aspell: fix spellers used after switch of window (bug #32811)
|
||||
* irc: fix parsing of message 332 when no topic neither colon are found
|
||||
(bug with bip proxy)
|
||||
* irc: fix nick color in private when option irc.look.nick_color_force is
|
||||
changed
|
||||
* irc: fix tags for messages sent with /msg command (bug #33169)
|
||||
|
||||
@@ -2838,27 +2838,36 @@ IRC_PROTOCOL_CALLBACK(332)
|
||||
* :server 332 mynick #channel :topic of channel
|
||||
*/
|
||||
|
||||
IRC_PROTOCOL_MIN_ARGS(5);
|
||||
IRC_PROTOCOL_MIN_ARGS(4);
|
||||
|
||||
pos_topic = (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4];
|
||||
pos_topic = NULL;
|
||||
if (argc >= 5)
|
||||
pos_topic = (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4];
|
||||
|
||||
ptr_channel = irc_channel_search (server, argv[3]);
|
||||
|
||||
if (ptr_channel && ptr_channel->nicks)
|
||||
{
|
||||
topic_no_color = (weechat_config_boolean (irc_config_network_colors_receive)) ?
|
||||
NULL : irc_color_decode (pos_topic, 0);
|
||||
irc_channel_set_topic (ptr_channel,
|
||||
(topic_no_color) ? topic_no_color : pos_topic);
|
||||
if (topic_no_color)
|
||||
free (topic_no_color);
|
||||
if (pos_topic)
|
||||
{
|
||||
topic_no_color = (weechat_config_boolean (irc_config_network_colors_receive)) ?
|
||||
NULL : irc_color_decode (pos_topic, 0);
|
||||
irc_channel_set_topic (ptr_channel,
|
||||
(topic_no_color) ? topic_no_color : pos_topic);
|
||||
if (topic_no_color)
|
||||
free (topic_no_color);
|
||||
}
|
||||
ptr_buffer = ptr_channel->buffer;
|
||||
}
|
||||
else
|
||||
ptr_buffer = server->buffer;
|
||||
|
||||
topic_color = irc_color_decode (pos_topic,
|
||||
(weechat_config_boolean (irc_config_network_colors_receive)) ? 1 : 0);
|
||||
|
||||
topic_color = NULL;
|
||||
if (pos_topic)
|
||||
{
|
||||
topic_color = irc_color_decode (pos_topic,
|
||||
(weechat_config_boolean (irc_config_network_colors_receive)) ? 1 : 0);
|
||||
}
|
||||
weechat_printf_tags (irc_msgbuffer_get_target_buffer (server, NULL,
|
||||
command, NULL,
|
||||
ptr_buffer),
|
||||
@@ -2868,7 +2877,7 @@ IRC_PROTOCOL_CALLBACK(332)
|
||||
IRC_COLOR_CHAT_CHANNEL,
|
||||
argv[3],
|
||||
IRC_COLOR_CHAT,
|
||||
(topic_color) ? topic_color : pos_topic,
|
||||
(topic_color) ? topic_color : ((pos_topic) ? pos_topic : ""),
|
||||
IRC_COLOR_CHAT);
|
||||
if (topic_color)
|
||||
free (topic_color);
|
||||
|
||||
Reference in New Issue
Block a user