Added HIDDEN level to ignores

This commit is contained in:
vague666 2018-06-05 14:43:37 +02:00
commit db3b671328
7 changed files with 73 additions and 5 deletions

View file

@ -82,9 +82,9 @@ static int ignore_match_pattern(IGNORE_REC *rec, const char *text)
* However we also want to allow NO_ACT combined with levels, so mask it out and
* match levels if set. */
#define ignore_match_level(rec, level) \
(((level & MSGLEVEL_NO_ACT) != 0) ? \
((~MSGLEVEL_NO_ACT & level) & (rec)->level) != 0 : \
((rec)->level & MSGLEVEL_NO_ACT ? 0 : \
(((level & (MSGLEVEL_NO_ACT|MSGLEVEL_HIDDEN)) != 0) ? \
((~(MSGLEVEL_NO_ACT|MSGLEVEL_HIDDEN) & level) & (rec)->level) != 0 : \
((rec)->level & (MSGLEVEL_NO_ACT|MSGLEVEL_HIDDEN) ? 0 : \
(level & (rec)->level) != 0))
#define ignore_match_nickmask(rec, nick, nickmask) \
@ -212,6 +212,12 @@ IGNORE_REC *ignore_find_full(const char *servertag, const char *mask, const char
if (!(flags & IGNORE_FIND_NOACT) && (rec->level & MSGLEVEL_NO_ACT) != 0)
continue;
if ((flags & IGNORE_FIND_HIDDEN) && (rec->level & MSGLEVEL_HIDDEN) == 0)
continue;
if (!(flags & IGNORE_FIND_HIDDEN) && (rec->level & MSGLEVEL_HIDDEN) != 0)
continue;
if ((rec->mask == NULL && mask != NULL) ||
(rec->mask != NULL && mask == NULL))
continue;
@ -264,6 +270,11 @@ IGNORE_REC *ignore_find_noact(const char *servertag, const char *mask, char **ch
return ignore_find_full(servertag, mask, NULL, channels, IGNORE_FIND_NOACT);
}
IGNORE_REC *ignore_find_hidden(const char *servertag, const char *mask, char **channels, int hidden)
{
return ignore_find_full(servertag, mask, NULL, channels, IGNORE_FIND_HIDDEN);
}
static void ignore_set_config(IGNORE_REC *rec)
{
CONFIG_NODE *node;