diff --git a/degesch.c b/degesch.c index 5392092..e256eeb 100644 --- a/degesch.c +++ b/degesch.c @@ -3677,9 +3677,9 @@ irc_is_this_us (struct server *s, const char *prefix) static bool irc_is_channel (struct server *s, const char *ident) { - (void) s; // TODO: parse prefixes from server features - - return *ident && !!strchr ("#&+!", *ident); + return *ident + && (!!strchr (s->irc_chantypes, *ident) || + !!strchr (s->irc_idchan_prefixes, *ident)); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -4439,8 +4439,7 @@ irc_process_names (struct server *s, struct channel *channel) { struct str_map map; str_map_init (&map); - // FIXME: use a server-specific strxfrm - map.key_xfrm = irc_strxfrm; + map.key_xfrm = s->irc_strxfrm; // Initialize list of users LIST_FOR_EACH (struct channel_user, iter, channel->users)