diff --git a/degesch.c b/degesch.c index 9d57abb..a06ef24 100644 --- a/degesch.c +++ b/degesch.c @@ -5932,16 +5932,17 @@ irc_is_highlight (struct server *s, const char *message) formatter_free (&f); // Well, this is rather crude but it should make most users happy. - // Ideally we could do this at least in proper Unicode. - char *copy = irc_to_utf8 (stripped.str); + // We could do this in proper Unicode but that's two more conversions per + // message when both the nickname and the message are likely valid UTF-8. + char *copy = str_steal (&stripped); cstr_transform (copy, s->irc_tolower); - str_free (&stripped); char *nick = xstrdup (s->irc_user->nickname); cstr_transform (nick, s->irc_tolower); // Special characters allowed in nicknames by RFC 2812: []\`_^{|} and - // Also excluded from the ASCII: common user channel prefixes: +%@&~ + // XXX: why did I exclude those? It won't match when newbies use them. const char *delimiters = ",.;:!?()<>/=#$* \t\r\n\v\f\"'"; bool result = false;