Implement CHANTYPES support

This commit is contained in:
LemonBoy 2015-05-15 16:42:51 +02:00
commit 16c71cf1fb
23 changed files with 57 additions and 55 deletions

View file

@ -71,13 +71,20 @@ static int isnickflag_func(SERVER_REC *server, char flag)
static int ischannel_func(SERVER_REC *server, const char *data)
{
if (*data == '@') {
/* @#channel, @+#channel */
data++;
if (*data == '+' && ischannel(data[1]))
return 1;
}
return ischannel(*data);
IRC_SERVER_REC *irc_server = (IRC_SERVER_REC *) server;
char *chantypes;
chantypes = g_hash_table_lookup(irc_server->isupport, "chantypes");
if (chantypes == NULL)
chantypes = "#&!+"; /* normal, local, secure, modeless */
/* @#channel, @+#channel */
if (data[0] == '@' && data[1] == '+')
data += 2;
else if (data[0] == '@')
data += 1;
return strchr(chantypes, *data) != NULL;
}
static char **split_line(const SERVER_REC *server, const char *line,