correctly separate ignore flags (no_act, hidden) from level

This commit is contained in:
ailin-nemui 2018-09-17 12:26:13 +02:00
commit b9a274a81d
7 changed files with 92 additions and 57 deletions

View file

@ -201,10 +201,10 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
if (for_me)
level |= MSGLEVEL_HILIGHT;
if (ignore_check(server, nick, address, target, msg, level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, nick, address, target, msg, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, nick, address, target, msg, level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, nick, address, target, msg, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
if (settings_get_bool("emphasis"))
@ -263,10 +263,10 @@ static void sig_message_private(SERVER_REC *server, const char *msg,
if (settings_get_bool("emphasis"))
msg = freemsg = expand_emphasis((WI_ITEM_REC *) query, msg);
if (ignore_check(server, nick, address, NULL, msg, level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, nick, address, NULL, msg, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, nick, address, NULL, msg, level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, nick, address, NULL, msg, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
if (own) {
@ -361,10 +361,10 @@ static void sig_message_join(SERVER_REC *server, const char *channel,
{
int level = MSGLEVEL_JOINS;
if (ignore_check(server, nick, address, channel, NULL, level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, nick, address, channel, NULL, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, nick, address, channel, NULL, level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, nick, address, channel, NULL, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
printformat(server, channel, level,
@ -377,10 +377,10 @@ static void sig_message_part(SERVER_REC *server, const char *channel,
{
int level = MSGLEVEL_PARTS;
if (ignore_check(server, nick, address, channel, NULL, level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, nick, address, channel, NULL, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, nick, address, channel, NULL, level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, nick, address, channel, NULL, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
printformat(server, channel, level,
@ -399,10 +399,10 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
if (ignore_check(server, nick, address, NULL, reason, MSGLEVEL_QUITS))
return;
if (ignore_check(server, nick, address, NULL, reason, level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, nick, address, NULL, reason, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, nick, address, NULL, reason, level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, nick, address, NULL, reason, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
print_channel = NULL;
@ -424,10 +424,10 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
continue;
}
if (ignore_check(server, nick, address, rec->visible_name, reason, MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, nick, address, rec->visible_name, reason, MSGLEVEL_QUITS, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, nick, address, rec->visible_name, reason, MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, nick, address, rec->visible_name, reason, MSGLEVEL_QUITS, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
if (print_channel == NULL ||
@ -476,10 +476,10 @@ static void sig_message_kick(SERVER_REC *server, const char *channel,
{
int level = MSGLEVEL_KICKS;
if (ignore_check(server, kicker, address, channel, reason, level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, kicker, address, channel, reason, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, kicker, address, channel, reason, level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, kicker, address, channel, reason, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
printformat(server, channel, level,
@ -500,10 +500,10 @@ static void print_nick_change_channel(SERVER_REC *server, const char *channel,
level = MSGLEVEL_NICKS;
if (ownnick) level |= MSGLEVEL_NO_ACT;
if (!(level & MSGLEVEL_NO_ACT) && ignore_check(server, oldnick, address, channel, newnick, level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, oldnick, address, channel, newnick, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (!(level & MSGLEVEL_HIDDEN) && ignore_check(server, oldnick, address, channel, newnick, level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, oldnick, address, channel, newnick, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
printformat(server, channel, level,
@ -582,10 +582,10 @@ static void sig_message_topic(SERVER_REC *server, const char *channel,
{
int level = MSGLEVEL_TOPICS;
if (ignore_check(server, nick, address, channel, topic, level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(server, nick, address, channel, topic, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, nick, address, channel, topic, level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(server, nick, address, channel, topic, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
printformat(server, channel, level,

View file

@ -92,12 +92,12 @@ static void sig_message_dcc(CHAT_DCC_REC *dcc, const char *msg)
tag = g_strconcat("=", dcc->id, NULL);
query = query_find(NULL, tag);
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
format_create_dest_tag(&dest, dcc->server, dcc->servertag, tag,
@ -118,12 +118,12 @@ static void sig_message_dcc_action(CHAT_DCC_REC *dcc, const char *msg)
tag = g_strconcat("=", dcc->id, NULL);
query = query_find(NULL, tag);
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
format_create_dest_tag(&dest, dcc->server, dcc->servertag, tag,
@ -143,12 +143,12 @@ static void sig_message_dcc_ctcp(CHAT_DCC_REC *dcc, const char *cmd,
tag = g_strconcat("=", dcc->id, NULL);
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, cmd,
level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(SERVER(dcc->server), tag, dcc->addrstr, NULL, cmd,
level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, cmd,
level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(SERVER(dcc->server), tag, dcc->addrstr, NULL, cmd,
level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
format_create_dest_tag(&dest, dcc->server, dcc->servertag, tag,

View file

@ -158,12 +158,12 @@ static void sig_message_irc_action(IRC_SERVER_REC *server, const char *msg,
if (ignore_check(SERVER(server), nick, address, target, msg, level))
return;
if (ignore_check(SERVER(server), nick, address, target, msg,
level | MSGLEVEL_NO_ACT))
if (ignore_check_flags(SERVER(server), nick, address, target, msg,
level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(SERVER(server), nick, address, target, msg,
level | MSGLEVEL_HIDDEN))
if (ignore_check_flags(SERVER(server), nick, address, target, msg,
level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
if (server_ischannel(SERVER(server), target)) {
@ -240,14 +240,14 @@ static void sig_message_irc_notice(SERVER_REC *server, const char *msg,
msg, level))
return;
if (ignore_check(server, nick, address,
if (ignore_check_flags(server, nick, address,
server_ischannel(SERVER(server), target) ? target : NULL,
msg, level | MSGLEVEL_NO_ACT))
msg, level, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check(server, nick, address,
if (ignore_check_flags(server, nick, address,
server_ischannel(SERVER(server), target) ? target : NULL,
msg, level | MSGLEVEL_HIDDEN))
msg, level, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
if (server_ischannel(SERVER(server), target)) {

View file

@ -162,19 +162,29 @@ static void sig_message_mode(IRC_SERVER_REC *server, const char *channel,
const char *nick, const char *addr,
const char *mode)
{
int level = MSGLEVEL_MODES;
if (nick == NULL) nick = server->real_address;
if (ignore_check(SERVER(server), nick, addr, channel,
mode, MSGLEVEL_MODES))
return;
if (ignore_check_flags(SERVER(server), nick, addr, channel,
mode, MSGLEVEL_MODES, MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
if (ignore_check_flags(SERVER(server), nick, addr, channel,
mode, MSGLEVEL_MODES, MSGLEVEL_HIDDEN))
level |= MSGLEVEL_HIDDEN;
if (!server_ischannel(SERVER(server), channel)) {
/* user mode change */
printformat(server, NULL, MSGLEVEL_MODES,
printformat(server, NULL, level,
IRCTXT_USERMODE_CHANGE, mode, channel);
} else if (addr == NULL) {
/* channel mode changed by server */
printformat(server, channel, MSGLEVEL_MODES,
printformat(server, channel, level,
IRCTXT_SERVER_CHANMODE_CHANGE,
channel, mode, nick);
} else {
@ -187,7 +197,7 @@ static void sig_message_mode(IRC_SERVER_REC *server, const char *channel,
if (chanrec != NULL && g_ascii_strcasecmp(nick, server->nick) != 0)
msg_multi_mode(chanrec, nick, addr, mode);
else {
printformat(server, channel, MSGLEVEL_MODES,
printformat(server, channel, level,
IRCTXT_CHANMODE_CHANGE,
channel, mode, nick, addr);
}