diff options
Diffstat (limited to 'src/fe-common/core/fe-ignore.c')
-rw-r--r-- | src/fe-common/core/fe-ignore.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/fe-common/core/fe-ignore.c b/src/fe-common/core/fe-ignore.c index 03fd4dd2..88dc48f7 100644 --- a/src/fe-common/core/fe-ignore.c +++ b/src/fe-common/core/fe-ignore.c @@ -157,7 +157,8 @@ static void cmd_ignore(const char *data) g_strsplit(chanarg, ",", -1); rec = ignore_find_full(servertag, mask, patternarg, channels, - IGNORE_FIND_PATTERN | ((level & MSGLEVEL_NO_ACT) ? IGNORE_FIND_NOACT : 0)); + IGNORE_FIND_PATTERN | ((level & MSGLEVEL_NO_ACT) ? IGNORE_FIND_NOACT : 0) | + ((level & MSGLEVEL_HIDDEN) ? IGNORE_FIND_HIDDEN : 0)); new_ignore = rec == NULL; if (rec == NULL) { @@ -179,6 +180,12 @@ static void cmd_ignore(const char *data) rec->level |= MSGLEVEL_ALL; } + if (rec->level == MSGLEVEL_HIDDEN) { + /* If only HIDDEN was specified add all levels; it makes no + * sense on its own. */ + rec->level |= MSGLEVEL_ALL; + } + if (new_ignore && rec->level == 0) { /* tried to unignore levels from nonexisting ignore */ printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, |