From 5f7774db81f457bd9a63419af110cbb362bb2ad0 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 3 Dec 2001 20:39:14 +0000 Subject: "channel wholist" still wasn't sent at proper times. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2188 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/irc/core/channels-query.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/irc/core/channels-query.c b/src/irc/core/channels-query.c index 731e5bd2..28a1cce7 100644 --- a/src/irc/core/channels-query.c +++ b/src/irc/core/channels-query.c @@ -443,13 +443,14 @@ static void event_end_of_who(IRC_SERVER_REC *server, const char *data) { SERVER_QUERY_REC *rec; GSList *tmp, *next; - char *params, *channel; + char *params, *channel, **channels; int failed, multiple; g_return_if_fail(data != NULL); params = event_get_params(data, 2, NULL, &channel); multiple = strchr(channel, ',') != NULL; + channels = g_strsplit(channel, ",", -1); failed = FALSE; rec = server->chanqueries; @@ -457,20 +458,23 @@ static void event_end_of_who(IRC_SERVER_REC *server, const char *data) IRC_CHANNEL_REC *chanrec = tmp->data; next = tmp->next; + if (strarray_find(channels, chanrec->name) == -1) + continue; + if (chanrec->ownnick->host == NULL && multiple && !server->one_endofwho) { /* we should receive our own host for each channel. However, some servers really are stupid enough not to reply anything to /WHO requests.. */ failed = TRUE; - } else if (chanrec->ownnick->host != NULL || - server->one_endofwho) { + } else { chanrec->wholist = TRUE; signal_emit("channel wholist", 1, chanrec); channel_got_query(chanrec, CHANNEL_QUERY_WHO); } } + g_strfreev(channels); if (multiple) server->one_endofwho = TRUE; -- cgit v1.2.3