1
0
mirror of https://github.com/irssi/irssi.git synced 2024-09-15 04:28:09 -04:00

Make ischannel_func return false for empty strings

This commit is contained in:
LemonBoy 2016-03-18 22:50:00 +01:00
parent f6c2805b91
commit f31d37a852

View File

@ -78,17 +78,23 @@ static int ischannel_func(SERVER_REC *server, const char *data)
IRC_SERVER_REC *irc_server = (IRC_SERVER_REC *) server; IRC_SERVER_REC *irc_server = (IRC_SERVER_REC *) server;
char *chantypes, *statusmsg; char *chantypes, *statusmsg;
g_return_val_if_fail(data != NULL, FALSE);
/* empty string is no channel */
if (*data == '\0')
return FALSE;
chantypes = g_hash_table_lookup(irc_server->isupport, "chantypes"); chantypes = g_hash_table_lookup(irc_server->isupport, "chantypes");
if (chantypes == NULL) if (chantypes == NULL)
chantypes = "#&!+"; /* normal, local, secure, modeless */ chantypes = "#&!+"; /* normal, local, secure, modeless */
statusmsg = g_hash_table_lookup(irc_server->isupport, "statusmsg"); statusmsg = g_hash_table_lookup(irc_server->isupport, "statusmsg");
if (statusmsg != NULL) { if (statusmsg != NULL)
while (strchr(statusmsg, *data) != NULL) data += strspn(data, statusmsg);
data++;
}
return strchr(chantypes, *data) != NULL; /* strchr(3) considers the trailing NUL as part of the string, make sure
* we didn't advance too much. */
return *data != '\0' && strchr(chantypes, *data) != NULL;
} }
static char **split_line(const SERVER_REC *server, const char *line, static char **split_line(const SERVER_REC *server, const char *line,