mirror of
https://github.com/irssi/irssi.git
synced 2026-08-16 23:22:16 +02:00
Added HIDDEN level to ignores
This commit is contained in:
parent
daf6ce86cb
commit
db3b671328
7 changed files with 73 additions and 5 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ int ignore_check(SERVER_REC *server, const char *nick, const char *host,
|
|||
enum {
|
||||
IGNORE_FIND_PATTERN = 0x01, /* Match the pattern */
|
||||
IGNORE_FIND_NOACT = 0x02, /* Exclude the targets with NOACT level */
|
||||
IGNORE_FIND_HIDDEN = 0x03, /* Exclude the targets with HIDDEN level */
|
||||
};
|
||||
|
||||
IGNORE_REC *ignore_find_full (const char *servertag, const char *mask, const char *pattern,
|
||||
|
|
@ -38,6 +39,7 @@ IGNORE_REC *ignore_find_full (const char *servertag, const char *mask, const cha
|
|||
|
||||
IGNORE_REC *ignore_find(const char *servertag, const char *mask, char **channels);
|
||||
IGNORE_REC *ignore_find_noact(const char *servertag, const char *mask, char **channels, int noact);
|
||||
IGNORE_REC *ignore_find_hidden(const char *servertag, const char *mask, char **channels, int hidden);
|
||||
|
||||
void ignore_add_rec(IGNORE_REC *rec);
|
||||
void ignore_update_rec(IGNORE_REC *rec);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue