Merge branch 'development'
[NeonServV5.git] / src / IRCParser.h
1 /* IRCParser.h - NeonServ v5.6
2  * Copyright (C) 2011-2012  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(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 #ifndef DND_FUNCTIONS
35 extern int statistics_privmsg;
36 extern int statistics_network_users;
37 extern int statistics_network_channels;
38
39 void parse_line(struct ClientSocket *client, char *line);
40 void bot_disconnect(struct ClientSocket *client);
41 void init_parser();
42 void free_parser();
43 /* MODULAR ACCESSIBLE */ void reply(struct ClientSocket *client, struct UserNode *user, const char *text, ...);
44 /* MODULAR ACCESSIBLE */ char* merge_argv(char **argv, int start, int end);
45 /* MODULAR ACCESSIBLE */ char* merge_argv_char(char **argv, int start, int end, char seperator);
46 #endif
47 #endif