diff --git a/common.c b/common.c index 95590f5..94d5aa4 100644 --- a/common.c +++ b/common.c @@ -58,6 +58,13 @@ (link)->next = (following); \ BLOCK_END +static void +transform_str (char *s, int (*tolower) (int c)) +{ + for (; *s; s++) + *s = tolower (*s); +} + static void split_str (const char *s, char delimiter, struct str_vector *out) { diff --git a/degesch.c b/degesch.c index 6c8d1f5..6294316 100644 --- a/degesch.c +++ b/degesch.c @@ -4413,12 +4413,10 @@ irc_is_highlight (struct server *s, const char *message) // Well, this is rather crude but it should make most users happy. // Ideally we could do this at least in proper Unicode. char *copy = xstrdup (message); - for (char *p = copy; *p; p++) - *p = s->irc_tolower (*p); + transform_str (copy, s->irc_tolower); char *nick = xstrdup (s->irc_user->nickname); - for (char *p = nick; *p; p++) - *p = s->irc_tolower (*p); + transform_str (nick, s->irc_tolower); // Special characters allowed in nicknames by RFC 2812: []\`_^{|} and - // Also excluded from the ASCII: common user channel prefixes: +%@&~ @@ -6825,8 +6823,7 @@ handle_command_ctcp (struct handler_args *a) return false; char *tag = cut_word (&a->arguments); - for (char *p = tag; *p; p++) - *p = toupper_ascii (*p); + transform_str (tag, toupper_ascii); if (*a->arguments) irc_send (a->s, "PRIVMSG %s :\x01%s %s\x01", target, tag, a->arguments);