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:
parent
20e26554cd
commit
8e6f743893
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user