7ba0aeec375a70f1c64ee62617b82c32247d3ce1
[NeonServV5.git] / src / IRCParser.h
1 /* IRCParser.h - NeonServ v5.1
2  * Copyright (C) 2011  Philipp Kreil (pk910)
3  * 
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * 
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  * 
14  * You should have received a copy of the GNU General Public License 
15  * along with this program. If not, see <http://www.gnu.org/licenses/>. 
16  */
17 #ifndef _IRCParser_h
18 #define _IRCParser_h
19
20 #include "main.h"
21
22 struct ClientSocket;
23 struct UserNode;
24
25 #define IRC_CMD(NAME) int NAME(struct ClientSocket *client, UNUSED_ARG(const char *from), UNUSED_ARG(char **argv), UNUSED_ARG(unsigned int argc))
26 typedef IRC_CMD(irc_cmd_t);
27
28 struct irc_cmd {
29     char *cmd;
30     irc_cmd_t *func;
31     struct irc_cmd *next;
32 };
33
34 int parse_lines(struct ClientSocket *client, char *lines, int len);
35 void bot_disconnect(struct ClientSocket *client);
36 void init_parser();
37 void free_parser();
38 void reply(struct ClientSocket *client, struct UserNode *user, const char *text, ...);
39 char* merge_argv(char **argv, int start, int end);
40 char* merge_argv_char(char **argv, int start, int end, char seperator);
41
42 #endif