!channel fixes.

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2803 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2002-05-17 15:22:05 +00:00 committed by cras
commit 3ecf864f18
6 changed files with 38 additions and 5 deletions

View file

@ -236,8 +236,18 @@ static void event_join(IRC_SERVER_REC *server, const char *data, const char *nic
shortchan = g_strdup_printf("!%s", channel+6);
chanrec = channel_find_unjoined(server, shortchan);
if (chanrec != NULL) {
channel_change_name(CHANNEL(chanrec), channel);
g_free(chanrec->name);
chanrec->name = g_strdup(channel);
} else {
/* well, did we join it with full name? if so, and if
this was the first short one, change it's name. */
chanrec = channel_find_unjoined(server, channel);
if (chanrec != NULL &&
irc_channel_find(server, shortchan) == NULL) {
channel_change_visible_name(CHANNEL(chanrec),
shortchan);
}
}
}

View file

@ -149,12 +149,11 @@ static CHANNEL_REC *irc_channel_find_server(SERVER_REC *server,
if (rec->chat_type != server->chat_type)
continue;
/* check both !ABCDEchannel and !channel */
if (g_strcasecmp(channel, rec->name) == 0)
return rec;
/* check after removing ABCDE from !ABCDEchannel */
if (*channel == '!' && *rec->name == '!' &&
g_strcasecmp(channel+1, rec->name+6) == 0)
if (g_strcasecmp(channel, rec->visible_name) == 0)
return rec;
}