From: Egor Date: Sun, 15 Jun 2025 09:36:00 +0000 (+0300) Subject: irc: more match macros X-Git-Url: https://git.patchysicp.xyz/?a=commitdiff_plain;h=ecbc18df5d5ae026943ffc0a670755e58e40b82b;p=patchyircd.git irc: more match macros --- diff --git a/src/irc.cpp b/src/irc.cpp index d723f71..dea4e3b 100644 --- a/src/irc.cpp +++ b/src/irc.cpp @@ -236,12 +236,16 @@ static void cont_pass(Client *client, int res) { newUser(client); } } +#define MATCH_BEGIN if (0) #define MATCH_COMMAND(s) else if (command == s##sv) +#define MATCH_ELSE else +#define MATCH_END int irc_process_line(Client *client, char *source, std::string_view command, int argc, char *args[]) { (void)source; databuf.clear(); - if (command.empty()) { + if (command.empty()) return 0; + MATCH_BEGIN { } MATCH_COMMAND("PING") { if (!args[0]) return err_needmoreparams(client, command), sendbuf(client), 0; @@ -1209,10 +1213,10 @@ privmsg_notice_common: return err_needmoreparams(client, command), sendbuf(client), 0; return admin_command(client, source, args[0], argc-1, args+1); #endif - } else { + } MATCH_ELSE { unknown: err_unknowncommand(client, command), sendbuf(client); - } + } MATCH_END return 0; }