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;
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;
}