diff options
Diffstat (limited to 'src/plugins/irc/irc-protocol.c')
-rw-r--r-- | src/plugins/irc/irc-protocol.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 50924f46f..5920fabc5 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -4029,7 +4029,17 @@ IRC_PROTOCOL_CALLBACK(347) ptr_channel->buffer : server->buffer; ptr_modelist = irc_modelist_search (ptr_channel, 'I'); if (ptr_modelist) + { + if (ptr_modelist->state != IRC_MODELIST_STATE_RECEIVING) + { + /* + * remove all items if no invite was received before + * the end of invite list + */ + irc_modelist_item_free_all (ptr_modelist); + } ptr_modelist->state = IRC_MODELIST_STATE_RECEIVED; + } weechat_printf_date_tags ( irc_msgbuffer_get_target_buffer ( server, NULL, command, "invitelist", ptr_buffer), @@ -4191,7 +4201,17 @@ IRC_PROTOCOL_CALLBACK(349) ptr_channel->buffer : server->buffer; ptr_modelist = irc_modelist_search (ptr_channel, 'e'); if (ptr_modelist) + { + if (ptr_modelist->state != IRC_MODELIST_STATE_RECEIVING) + { + /* + * remove all items if no exception was received before + * the end of exception list + */ + irc_modelist_item_free_all (ptr_modelist); + } ptr_modelist->state = IRC_MODELIST_STATE_RECEIVED; + } weechat_printf_date_tags ( irc_msgbuffer_get_target_buffer ( server, NULL, command, "exceptionlist", ptr_buffer), @@ -4982,7 +5002,17 @@ IRC_PROTOCOL_CALLBACK(368) ptr_channel->buffer : server->buffer; ptr_modelist = irc_modelist_search (ptr_channel, 'b'); if (ptr_modelist) + { + if (ptr_modelist->state != IRC_MODELIST_STATE_RECEIVING) + { + /* + * remove all items if no ban was received before + * the end of ban list + */ + irc_modelist_item_free_all (ptr_modelist); + } ptr_modelist->state = IRC_MODELIST_STATE_RECEIVED; + } weechat_printf_date_tags ( irc_msgbuffer_get_target_buffer ( server, NULL, command, "banlist", ptr_buffer), @@ -5443,7 +5473,17 @@ IRC_PROTOCOL_CALLBACK(729) ptr_channel->buffer : server->buffer; ptr_modelist = irc_modelist_search (ptr_channel, argv[4][0]); if (ptr_modelist) + { + if (ptr_modelist->state != IRC_MODELIST_STATE_RECEIVING) + { + /* + * remove all items if no quiet was received before + * the end of quiet list + */ + irc_modelist_item_free_all (ptr_modelist); + } ptr_modelist->state = IRC_MODELIST_STATE_RECEIVED; + } weechat_printf_date_tags ( irc_msgbuffer_get_target_buffer ( server, NULL, command, "quietlist", ptr_buffer), |