diff options
author | Timo Sirainen <cras@irssi.org> | 2000-07-15 13:04:03 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2000-07-15 13:04:03 +0000 |
commit | 796d51afe4600377735a7d91f17796d048574ed5 (patch) | |
tree | 5361253a276cd102f64f236aab65ed73aaa7a555 /src/fe-common/irc/fe-irc-commands.c | |
parent | 1b736a68a7b476394a24a6031db4b2b4d716b5de (diff) | |
download | irssi-796d51afe4600377735a7d91f17796d048574ed5.zip |
Fixed DCC stuff. Added DCCMSGS level for DCC chat messages.
Actions match now either MSGS or PUBLIC level as well as the ACTIONS
level always.
Added DCCMSGS level to default highlight levels. Highlighting works
with other than public messages now even if -nick option is used.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@463 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/fe-common/irc/fe-irc-commands.c')
-rw-r--r-- | src/fe-common/irc/fe-irc-commands.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/fe-common/irc/fe-irc-commands.c b/src/fe-common/irc/fe-irc-commands.c index 19243c0d..f390c6b0 100644 --- a/src/fe-common/irc/fe-irc-commands.c +++ b/src/fe-common/irc/fe-irc-commands.c @@ -178,9 +178,11 @@ static void cmd_me(gchar *data, IRC_SERVER_REC *server, WI_IRC_REC *item) if (!irc_item_check(item)) return; - if (server == NULL || !server->connected) cmd_return_error(CMDERR_NOT_CONNECTED); + if (server == NULL || !server->connected) + cmd_return_error(CMDERR_NOT_CONNECTED); - printformat(server, item->name, MSGLEVEL_ACTIONS, + printformat(server, item->name, MSGLEVEL_ACTIONS | MSGLEVEL_NOHILIGHT | + (ischannel(*item->name) ? MSGLEVEL_PUBLIC : MSGLEVEL_MSGS), IRCTXT_OWN_ME, server->nick, data); irc_send_cmdv(server, "PRIVMSG %s :\001ACTION %s\001", item->name, data); @@ -192,13 +194,17 @@ static void cmd_action(const char *data, IRC_SERVER_REC *server) void *free_arg; g_return_if_fail(data != NULL); - if (server == NULL || !server->connected) cmd_return_error(CMDERR_NOT_CONNECTED); + if (server == NULL || !server->connected) + cmd_return_error(CMDERR_NOT_CONNECTED); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &target, &text)) return; - if (*target == '\0' || *text == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); + if (*target == '\0' || *text == '\0') + cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); - printformat(server, target, MSGLEVEL_ACTIONS, IRCTXT_OWN_ME, server->nick, text); + printformat(server, target, MSGLEVEL_ACTIONS | MSGLEVEL_NOHILIGHT | + (ischannel(*target) ? MSGLEVEL_PUBLIC : MSGLEVEL_MSGS), + IRCTXT_OWN_ME, server->nick, text); irc_send_cmdv(server, "PRIVMSG %s :\001ACTION %s\001", target, text); cmd_params_free(free_arg); } @@ -236,6 +242,12 @@ static void cmd_ctcp(const char *data, IRC_SERVER_REC *server) return; if (*target == '\0' || *ctcpcmd == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); + if (*target == '=') { + /* don't handle DCC CTCPs */ + cmd_params_free(free_arg); + return; + } + if (*target == '@' && ischannel(target[1])) target++; /* Hybrid 6 feature, send ctcp to all ops in channel */ |