/* Copyright (C) 2020 C. McEnroe * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include #include "chat.h" const char *commandIsPrivmsg(size_t id, const char *input) { if (id == Network || id == Debug) return NULL; if (input[0] != '/') return input; const char *space = strchr(&input[1], ' '); const char *slash = strchr(&input[1], '/'); if (slash && (!space || slash < space)) return input; return NULL; } const char *commandIsNotice(size_t id, const char *input) { if (id == Network || id == Debug) return NULL; if (strncmp(input, "/notice ", 8)) return NULL; return &input[8]; } const char *commandIsAction(size_t id, const char *input) { if (id == Network || id == Debug) return NULL; if (strncmp(input, "/me ", 4)) return NULL; return &input[4]; } void command(size_t id, char *input) { if (id == Debug) { ircFormat("%s\r\n", input); return; } ircFormat("PRIVMSG %s :%s\r\n", idNames[id], input); struct Message msg = { .nick = self.nick, .user = self.user, .cmd = "PRIVMSG", .params[0] = idNames[id], .params[1] = input, }; handle(msg); }