From a617cd857a332e1ba2dfc0918e4269804b444106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Fri, 23 Jan 2015 20:02:25 +0100 Subject: [PATCH] irc: fix restore of query buffers on /upgrade (closes #315) After /upgrade it was not possible to send a message in the query buffer or to receive messages from this nick. This commit fixes the search of query buffer when creating the irc channel (with type "private"). The bug was introduced by commit 9749b65f7e67bbee55e8708e571f5cff79b1bdbe. --- src/plugins/irc/irc-channel.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/irc/irc-channel.c b/src/plugins/irc/irc-channel.c index cd356b747..d16564347 100644 --- a/src/plugins/irc/irc-channel.c +++ b/src/plugins/irc/irc-channel.c @@ -179,7 +179,7 @@ irc_channel_search (struct t_irc_server *server, const char *channel_name) */ struct t_gui_buffer * -irc_channel_search_buffer (struct t_irc_server *server, +irc_channel_search_buffer (struct t_irc_server *server, int channel_type, const char *channel_name) { struct t_hdata *hdata_buffer; @@ -202,7 +202,10 @@ irc_channel_search_buffer (struct t_irc_server *server, if (ptr_type && ptr_type[0] && ptr_server_name && ptr_server_name[0] && ptr_channel_name && ptr_channel_name[0] - && (strcmp (ptr_type, "channel") == 0) + && (((channel_type == IRC_CHANNEL_TYPE_CHANNEL) + && (strcmp (ptr_type, "channel") == 0)) + || ((channel_type == IRC_CHANNEL_TYPE_PRIVATE) + && (strcmp (ptr_type, "private") == 0))) && (strcmp (ptr_server_name, server->name) == 0) && ((irc_server_strcasecmp (server, ptr_channel_name, channel_name) == 0))) @@ -240,9 +243,12 @@ irc_channel_create_buffer (struct t_irc_server *server, buffer_name = irc_buffer_build_name (server->name, channel_name); - ptr_buffer = irc_channel_search_buffer (server, channel_name); + ptr_buffer = irc_channel_search_buffer (server, channel_type, + channel_name); if (ptr_buffer) + { weechat_nicklist_remove_all (ptr_buffer); + } else { ptr_buffer_for_merge = NULL;