diff options
Diffstat (limited to 'src/fe-common/irc/fe-events.c')
-rw-r--r-- | src/fe-common/irc/fe-events.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/fe-common/irc/fe-events.c b/src/fe-common/irc/fe-events.c index 7b82f365..24a1c0c3 100644 --- a/src/fe-common/irc/fe-events.c +++ b/src/fe-common/irc/fe-events.c @@ -129,6 +129,7 @@ static void event_privmsg(const char *data, IRC_SERVER_REC *server, const char * static void ctcp_msg_check_action(gchar *data, IRC_SERVER_REC *server, gchar *nick, gchar *addr, gchar *target) { WI_ITEM_REC *item; + int level; g_return_if_fail(data != NULL); @@ -136,7 +137,9 @@ static void ctcp_msg_check_action(gchar *data, IRC_SERVER_REC *server, gchar *ni return; data += 7; - if (ignore_check(server, nick, addr, target, data, MSGLEVEL_ACTIONS)) + level = MSGLEVEL_ACTIONS | + (ischannel(*target) ? MSGLEVEL_PUBLIC : MSGLEVEL_MSGS); + if (ignore_check(server, nick, addr, target, data, level)) return; if (ischannel(*target)) { @@ -145,17 +148,17 @@ static void ctcp_msg_check_action(gchar *data, IRC_SERVER_REC *server, gchar *ni if (window_item_is_active(item)) { /* message to active channel in window */ - printformat(server, target, MSGLEVEL_ACTIONS, + printformat(server, target, level, IRCTXT_ACTION_PUBLIC, nick, data); } else { /* message to not existing/active channel */ - printformat(server, target, MSGLEVEL_ACTIONS, + printformat(server, target, level, IRCTXT_ACTION_PUBLIC_CHANNEL, nick, target, data); } } else { /* private action */ item = (WI_ITEM_REC *) privmsg_get_query(server, nick, FALSE); - printformat(server, nick, MSGLEVEL_ACTIONS, + printformat(server, nick, level, item == NULL ? IRCTXT_ACTION_PRIVATE : IRCTXT_ACTION_PRIVATE_QUERY, nick, addr == NULL ? "" : addr, data); } |