1
0
mirror of https://github.com/irssi/irssi.git synced 2025-02-02 15:08:01 -05:00

Don't crash if the IRC server doesn't print your nick in /NAMES list after

join.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1796 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2001-09-13 13:06:19 +00:00 committed by cras
parent 20e26554cd
commit 8e6f743893

View File

@ -112,19 +112,28 @@ static void event_names_list(IRC_SERVER_REC *server, const char *data)
g_free(params);
}
static void event_end_of_names(SERVER_REC *server, const char *data)
static void event_end_of_names(IRC_SERVER_REC *server, const char *data)
{
char *params, *channel;
CHANNEL_REC *chanrec;
IRC_CHANNEL_REC *chanrec;
NICK_REC *ownnick;
int nicks;
g_return_if_fail(server != NULL);
params = event_get_params(data, 2, NULL, &channel);
chanrec = channel_find(server, channel);
chanrec = irc_channel_find(server, channel);
if (chanrec != NULL && !chanrec->names_got) {
nicklist_set_own(chanrec,
nicklist_find(chanrec, server->nick));
ownnick = nicklist_find(CHANNEL(chanrec), server->nick);
if (ownnick == NULL) {
/* stupid server - assume we have ops
if channel is empty */
nicks = g_hash_table_size(chanrec->nicks);
irc_nicklist_insert(chanrec, server->nick,
nicks == 0, FALSE, FALSE);
}
nicklist_set_own(CHANNEL(chanrec), ownnick);
chanrec->chanop = chanrec->ownnick->op;
chanrec->names_got = TRUE;
signal_emit("channel joined", 1, chanrec);