/usr/include/irssi/src/irc/core/modes.h is in irssi-dev 1.0.5-1ubuntu4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #ifndef __MODES_H
#define __MODES_H
#include "irc-channels.h"
#include "nicklist.h" /* MAX_USER_PREFIXES */
typedef void mode_func_t(IRC_CHANNEL_REC *, const char *, char, char,
char *, GString *);
struct modes_type {
mode_func_t *func;
char prefix;
};
/* modes that have argument always */
#define HAS_MODE_ARG_ALWAYS(server, mode) \
(server->modes[(int)(unsigned char) mode].func == modes_type_a || \
server->modes[(int)(unsigned char) mode].func == modes_type_b || \
server->modes[(int)(unsigned char) mode].func == modes_type_prefix)
/* modes that have argument when being set (+) */
#define HAS_MODE_ARG_SET(server, mode) \
(HAS_MODE_ARG_ALWAYS(server, mode) || \
server->modes[(int)(unsigned char) mode].func == modes_type_c)
/* modes that have argument when being unset (-) */
#define HAS_MODE_ARG_UNSET(server, mode) \
HAS_MODE_ARG_ALWAYS(server, mode)
#define HAS_MODE_ARG(server, type, mode) \
((type) == '+' ? HAS_MODE_ARG_SET(server,mode) : \
HAS_MODE_ARG_UNSET(server, mode))
#define GET_MODE_PREFIX(server, c) \
((server)->modes[(int)(unsigned char)c].prefix)
#define GET_PREFIX_MODE(server, c) \
((server)->prefix[(int)(unsigned char)c])
void modes_init(void);
void modes_deinit(void);
void modes_server_init(IRC_SERVER_REC *);
/* add `mode' to `old' - return newly allocated mode.
`channel' specifies if we're parsing channel mode and we should try
to join mode arguments too. */
char *modes_join(IRC_SERVER_REC *server, const char *old, const char *mode, int channel);
int channel_mode_is_set(IRC_CHANNEL_REC *channel, char mode);
void parse_channel_modes(IRC_CHANNEL_REC *channel, const char *setby,
const char *modestr, int update_key);
void channel_set_singlemode(IRC_CHANNEL_REC *channel, const char *nicks,
const char *mode);
void channel_set_mode(IRC_SERVER_REC *server, const char *channel,
const char *mode);
void prefix_add(char prefixes[MAX_USER_PREFIXES+1], char newprefix, SERVER_REC *server);
void prefix_del(char prefixes[MAX_USER_PREFIXES+1], char oldprefix);
mode_func_t modes_type_a;
mode_func_t modes_type_b;
mode_func_t modes_type_c;
mode_func_t modes_type_d;
mode_func_t modes_type_prefix;
#endif
|