summaryrefslogtreecommitdiff
path: root/src/irc/core/modes.h
blob: d72e6a3cdb7051e20f456691cf1181223f6a8df7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef __MODES_H
#define __MODES_H

#include "server.h"
#include "channels.h"

#define HAS_MODE_ARG(c) ((c) == 'b' || (c) == 'e' || (c) == 'I' || \
	(c) == 'v' || (c) == 'o' || (c) == 'l' || (c) == 'k')

void modes_init(void);
void modes_deinit(void);

/* add `mode' to `old' - return newly allocated mode. */
char *modes_join(const char *old, const char *mode);

void parse_channel_modes(CHANNEL_REC *channel, const char *setby, const char *modestr);

void channel_set_singlemode(IRC_SERVER_REC *server, const char *channel, const char *nicks, const char *mode);
void channel_set_mode(IRC_SERVER_REC *server, const char *channel, const char *mode);

#endif