From f231a59e81a7487dc46ad58fbdbde90d3b750435 Mon Sep 17 00:00:00 2001 From: ailin-nemui Date: Thu, 20 Sep 2018 17:50:35 +0200 Subject: [PATCH] properly document the ignore_match_level so I understand it next time --- src/core/ignore.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/ignore.c b/src/core/ignore.c index 9bfcfaf5..371da83b 100644 --- a/src/core/ignore.c +++ b/src/core/ignore.c @@ -87,7 +87,17 @@ static int ignore_match_level(IGNORE_REC *rec, int level, int flags) level &= ~FLAG_MSGLEVELS; flags &= FLAG_MSGLEVELS; - return ((FLAG_MSGLEVELS & rec->level) == flags) && ((level & rec->level) != 0); + if (!flags) { + /* case: we are not checking special flags. then, the + record must not have any flags either, but it must + have some of the levels */ + return !(FLAG_MSGLEVELS & rec->level) && (level & rec->level); + } else { + /* case: we want to test if some special flags + apply. then, the record must have some of the + flags and some of the levels */ + return (flags & rec->level) && (level & rec->level); + } } #define ignore_match_nickmask(rec, nick, nickmask) \