"beI", "k" , "l" , "imnpsta"
};
-int network_chanmode_type(char m, struct irc_network_info *n)
+enum chanmode_type network_chanmode_type(char m, struct irc_network_info *n)
{
int i;
for (i = 0; i < 4; i++) {
if (strchr((n && n->chanmodes)?n->chanmodes[i]:default_chanmodes[i], m)) {
- return i;
+ return i+1;
}
}
- return 3;
+ return CHANMODE_UNKNOWN;
}
+
CASEMAP_STRICT_RFC1459
};
+
+enum chanmode_type {
+ CHANMODE_UNKNOWN = 0,
+ CHANMODE_NICKLIST,
+ CHANMODE_SETTING,
+ CHANMODE_OPT_SETTING,
+ CHANMODE_BOOL
+};
+
/**
* Information about a network (doesn't change between connects or
* servers).
G_MODULE_EXPORT int irccmp(const struct irc_network_info *n, const char *a, const char *b);
G_GNUC_WARN_UNUSED_RESULT G_MODULE_EXPORT const char *get_charset(const struct irc_network_info *n);
G_MODULE_EXPORT void network_info_parse(struct irc_network_info *info, const char *parameter);
-G_MODULE_EXPORT int network_chanmode_type(char m, struct irc_network_info *n);
+G_MODULE_EXPORT enum chanmode_type network_chanmode_type(char m, struct irc_network_info *n);
G_MODULE_EXPORT struct irc_network_info *network_info_init(void);
G_MODULE_EXPORT void free_network_info(struct irc_network_info *info);
} else {
char *be = find_realnamebanlist_entry(c->realnamebanlist, opt_arg);
if (be == NULL) {
- network_state_log(LOG_WARNING, s, "Unable to remove nonpresent realname ban list entry '%s'", opt_arg);
+ network_state_log(LOG_WARNING, s, "Unable to remove nonpresent realname ban list entry '%s' on %s", opt_arg, c->name);
return 1;
}
c->realnamebanlist = g_list_remove(c->realnamebanlist, be);
END_TEST
START_TEST(test_chanmode_type_default)
- fail_unless(network_chanmode_type('I', NULL) == 0);
- fail_unless(network_chanmode_type('k', NULL) == 1);
- fail_unless(network_chanmode_type('z', NULL) == 3);
- fail_unless(network_chanmode_type('m', NULL) == 3);
- fail_unless(network_chanmode_type('l', NULL) == 2);
+ fail_unless(network_chanmode_type('I', NULL) == CHANMODE_NICKLIST);
+ fail_unless(network_chanmode_type('k', NULL) == CHANMODE_SETTING);
+ fail_unless(network_chanmode_type('z', NULL) == CHANMODE_UNKNOWN);
+ fail_unless(network_chanmode_type('m', NULL) == CHANMODE_BOOL);
+ fail_unless(network_chanmode_type('l', NULL) == CHANMODE_OPT_SETTING);
END_TEST
START_TEST(test_chanmode_type_lookup)
struct irc_network_info ni;
memset(&ni, 0, sizeof(ni));
network_info_parse(&ni, "CHANMODES=b,k,l,ciLmMnOprRst");
- fail_unless(network_chanmode_type('I', &ni) == 3);
- fail_unless(network_chanmode_type('k', &ni) == 1);
- fail_unless(network_chanmode_type('z', &ni) == 3);
- fail_unless(network_chanmode_type('m', &ni) == 3);
- fail_unless(network_chanmode_type('l', &ni) == 2);
+ fail_unless(network_chanmode_type('I', &ni) == CHANMODE_UNKNOWN);
+ fail_unless(network_chanmode_type('k', &ni) == CHANMODE_SETTING);
+ fail_unless(network_chanmode_type('z', &ni) == CHANMODE_UNKNOWN);
+ fail_unless(network_chanmode_type('m', &ni) == CHANMODE_BOOL);
+ fail_unless(network_chanmode_type('l', &ni) == CHANMODE_OPT_SETTING);
+ fail_unless(network_chanmode_type('w', &ni) == CHANMODE_UNKNOWN);
END_TEST
Suite *networkinfo_suite()