mirror of
https://github.com/irssi/irssi.git
synced 2026-08-10 12:23:37 +02:00
Merge pull request #937 from ailin-nemui/hidden-ignores
correctly separate ignore flags (no_act, hidden) from level
This commit is contained in:
commit
57857856a6
7 changed files with 99 additions and 119 deletions
|
|
@ -201,11 +201,7 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, nick, address, target, msg, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(server, nick, address, target, msg, &level, FALSE);
|
||||
|
||||
if (settings_get_bool("emphasis"))
|
||||
msg = freemsg = expand_emphasis((WI_ITEM_REC *) chanrec, msg);
|
||||
|
|
@ -263,11 +259,7 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, nick, address, NULL, msg, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(server, nick, address, NULL, msg, &level, FALSE);
|
||||
|
||||
if (own) {
|
||||
printformat(server, target, level,
|
||||
|
|
@ -361,11 +353,7 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, nick, address, channel, NULL, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(server, nick, address, channel, NULL, &level, FALSE);
|
||||
|
||||
printformat(server, channel, level,
|
||||
TXT_JOIN, nick, address, channel);
|
||||
|
|
@ -377,11 +365,7 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, nick, address, channel, NULL, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(server, nick, address, channel, NULL, &level, FALSE);
|
||||
|
||||
printformat(server, channel, level,
|
||||
TXT_PART, nick, address, channel, reason);
|
||||
|
|
@ -396,15 +380,9 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
|
|||
char *print_channel;
|
||||
int once, count, level = MSGLEVEL_QUITS;
|
||||
|
||||
if (ignore_check(server, nick, address, NULL, reason, MSGLEVEL_QUITS))
|
||||
if (ignore_check_plus(server, nick, address, NULL, reason, &level, TRUE))
|
||||
return;
|
||||
|
||||
if (ignore_check(server, nick, address, NULL, reason, level | MSGLEVEL_NO_ACT))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, nick, address, NULL, reason, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
|
||||
print_channel = NULL;
|
||||
once = settings_get_bool("show_quit_once");
|
||||
|
||||
|
|
@ -418,18 +396,12 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
|
|||
if (!nicklist_find(rec, nick))
|
||||
continue;
|
||||
|
||||
if (ignore_check(server, nick, address, rec->visible_name,
|
||||
reason, MSGLEVEL_QUITS)) {
|
||||
if (ignore_check_plus(server, nick, address, rec->visible_name,
|
||||
reason, &level, TRUE)) {
|
||||
count++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ignore_check(server, nick, address, rec->visible_name, reason, MSGLEVEL_NO_ACT))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, nick, address, rec->visible_name, reason, MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
|
||||
if (print_channel == NULL ||
|
||||
active_win->active == (WI_ITEM_REC *) rec)
|
||||
print_channel = rec->visible_name;
|
||||
|
|
@ -476,11 +448,7 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, kicker, address, channel, reason, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(server, kicker, address, channel, reason, &level, FALSE);
|
||||
|
||||
printformat(server, channel, level,
|
||||
TXT_KICK, nick, channel, kicker, reason, address);
|
||||
|
|
@ -493,18 +461,11 @@ static void print_nick_change_channel(SERVER_REC *server, const char *channel,
|
|||
{
|
||||
int level;
|
||||
|
||||
if (ignore_check(server, oldnick, address,
|
||||
channel, newnick, MSGLEVEL_NICKS))
|
||||
return;
|
||||
|
||||
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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (!(level & MSGLEVEL_HIDDEN) && ignore_check(server, oldnick, address, channel, newnick, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
if (ignore_check_plus(server, oldnick, address,
|
||||
channel, newnick, &level, TRUE))
|
||||
return;
|
||||
|
||||
printformat(server, channel, level,
|
||||
ownnick ? TXT_YOUR_NICK_CHANGED : TXT_NICK_CHANGED,
|
||||
|
|
@ -582,11 +543,7 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, nick, address, channel, topic, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(server, nick, address, channel, topic, &level, FALSE);
|
||||
|
||||
printformat(server, channel, level,
|
||||
*topic != '\0' ? TXT_NEW_TOPIC : TXT_TOPIC_UNSET,
|
||||
|
|
|
|||
|
|
@ -92,13 +92,8 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
|
||||
level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
|
||||
&level, FALSE);
|
||||
|
||||
format_create_dest_tag(&dest, dcc->server, dcc->servertag, tag,
|
||||
level, NULL);
|
||||
|
|
@ -118,13 +113,8 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
|
||||
level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(SERVER(dcc->server), tag, dcc->addrstr, NULL, msg,
|
||||
&level, FALSE);
|
||||
|
||||
format_create_dest_tag(&dest, dcc->server, dcc->servertag, tag,
|
||||
level, NULL);
|
||||
|
|
@ -143,13 +133,8 @@ 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))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(SERVER(dcc->server), tag, dcc->addrstr, NULL, cmd,
|
||||
level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
ignore_check_plus(SERVER(dcc->server), tag, dcc->addrstr, NULL, cmd,
|
||||
&level, FALSE);
|
||||
|
||||
format_create_dest_tag(&dest, dcc->server, dcc->servertag, tag,
|
||||
level, NULL);
|
||||
|
|
|
|||
|
|
@ -155,17 +155,9 @@ static void sig_message_irc_action(IRC_SERVER_REC *server, const char *msg,
|
|||
level = MSGLEVEL_ACTIONS |
|
||||
(server_ischannel(SERVER(server), target) ? MSGLEVEL_PUBLIC : MSGLEVEL_MSGS);
|
||||
|
||||
if (ignore_check(SERVER(server), nick, address, target, msg, level))
|
||||
if (ignore_check_plus(SERVER(server), nick, address, target, msg, &level, TRUE))
|
||||
return;
|
||||
|
||||
if (ignore_check(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))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
|
||||
if (server_ischannel(SERVER(server), target)) {
|
||||
item = irc_channel_find(server, target);
|
||||
} else {
|
||||
|
|
@ -226,30 +218,21 @@ static void sig_message_irc_notice(SERVER_REC *server, const char *msg,
|
|||
target = fe_channel_skip_prefix(IRC_SERVER(server), target);
|
||||
|
||||
if (address == NULL || *address == '\0') {
|
||||
level = MSGLEVEL_SNOTES;
|
||||
/* notice from server */
|
||||
if (!ignore_check(server, nick, "",
|
||||
target, msg, MSGLEVEL_SNOTES)) {
|
||||
printformat(server, target, MSGLEVEL_SNOTES,
|
||||
if (!ignore_check_plus(server, nick, "",
|
||||
target, msg, &level, TRUE)) {
|
||||
printformat(server, target, level,
|
||||
IRCTXT_NOTICE_SERVER, nick, msg);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (ignore_check(server, nick, address,
|
||||
if (ignore_check_plus(server, nick, address,
|
||||
server_ischannel(SERVER(server), target) ? target : NULL,
|
||||
msg, level))
|
||||
msg, &level, TRUE))
|
||||
return;
|
||||
|
||||
if (ignore_check(server, nick, address,
|
||||
server_ischannel(SERVER(server), target) ? target : NULL,
|
||||
msg, level | MSGLEVEL_NO_ACT))
|
||||
level |= MSGLEVEL_NO_ACT;
|
||||
|
||||
if (ignore_check(server, nick, address,
|
||||
server_ischannel(SERVER(server), target) ? target : NULL,
|
||||
msg, level | MSGLEVEL_HIDDEN))
|
||||
level |= MSGLEVEL_HIDDEN;
|
||||
|
||||
if (server_ischannel(SERVER(server), target)) {
|
||||
/* notice in some channel */
|
||||
printformat(server, target, level,
|
||||
|
|
|
|||
|
|
@ -162,19 +162,21 @@ 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))
|
||||
if (ignore_check_plus(SERVER(server), nick, addr, channel,
|
||||
mode, &level, TRUE))
|
||||
return;
|
||||
|
||||
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 +189,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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue