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);
|
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;
|
char *params, *channel;
|
||||||
CHANNEL_REC *chanrec;
|
IRC_CHANNEL_REC *chanrec;
|
||||||
|
NICK_REC *ownnick;
|
||||||
|
int nicks;
|
||||||
|
|
||||||
g_return_if_fail(server != NULL);
|
g_return_if_fail(server != NULL);
|
||||||
|
|
||||||
params = event_get_params(data, 2, NULL, &channel);
|
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) {
|
if (chanrec != NULL && !chanrec->names_got) {
|
||||||
nicklist_set_own(chanrec,
|
ownnick = nicklist_find(CHANNEL(chanrec), server->nick);
|
||||||
nicklist_find(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->chanop = chanrec->ownnick->op;
|
||||||
chanrec->names_got = TRUE;
|
chanrec->names_got = TRUE;
|
||||||
signal_emit("channel joined", 1, chanrec);
|
signal_emit("channel joined", 1, chanrec);
|
||||||
|
Loading…
Reference in New Issue
Block a user