From ed597221f20bd02d92ed8ef5822206ae21b6de6e Mon Sep 17 00:00:00 2001 From: Kevin Easton Date: Tue, 27 Jun 2017 14:15:10 +1000 Subject: [PATCH] Add ENCRYPTED_PUBLIC and ENCRYPTED_PUBLIC_NOTICE formats Encrypted messages to a channel need to use their own format. This also fixes the use of ENCRYPTED_PRIVMSG and ENCRYPTED_NOTICE - they were being called with too many arguments so the destination nick was being prepended to the message text. --- Changelog | 4 ++++ include/color.h | 4 ++++ include/cset.h | 2 ++ source/ctcp.c | 14 ++++++++++++-- source/fset.c | 4 ++++ 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Changelog b/Changelog index dc3dd67..8d19acf 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,9 @@ [Changes 1.2.2] +* Add /FSET ENCRYPTED_PUBLIC and ENCRYPTED_PUBLIC_NOTICE formats, and fix + use of ENCRYPTED_PRIVMSG and ENCRYPTED_NOTICE so they use the right number + of arguments. (caf) + * Move all handling of SED messages and notices into ctcp.c, re-enable SED notices. (caf) diff --git a/include/color.h b/include/color.h index 9b0b1ca..409e3a4 100644 --- a/include/color.h +++ b/include/color.h @@ -96,6 +96,8 @@ #define DEFAULT_FORMAT_DISCONNECT_FSET "$G Use %G/Server%n to connect to a server" #define DEFAULT_FORMAT_ENCRYPTED_NOTICE_FSET "%K-%Y$1%K(%p$2%K)-%n $3-" #define DEFAULT_FORMAT_ENCRYPTED_PRIVMSG_FSET "%K[%Y$1%K(%p$2%K)]%n $3-" +#define DEFAULT_FORMAT_ENCRYPTED_PUBLIC_FSET "%Y<%n$1%K/%n$3%Y>%n $4-" +#define DEFAULT_FORMAT_ENCRYPTED_PUBLIC_NOTICE_FSET "%Y-%n$1%K/%n$3%Y-%n $4-" #define DEFAULT_FORMAT_FLOOD_FSET "%Y$1%n flood detected from %G$2%K(%g$3%K)%n on %K[%G$4%K]" #define DEFAULT_FORMAT_FRIEND_JOIN_FSET "$G %R$1 %K[%c$2%K]%n has joined $3" #define DEFAULT_FORMAT_HELP_FSET "$0-" @@ -529,6 +531,8 @@ #define DEFAULT_FORMAT_DISCONNECT_FSET "$G Use %G/Server%n to connect to a server" #define DEFAULT_FORMAT_ENCRYPTED_NOTICE_FSET "%@%K-%Y$1%K(%p$2%K)-%n $3-" #define DEFAULT_FORMAT_ENCRYPTED_PRIVMSG_FSET "%@%K[%Y$1%K(%p$2%K)]%n $3-" +#define DEFAULT_FORMAT_ENCRYPTED_PUBLIC_FSET "%@%Y<%n$1%K/%n$3%Y>%n $4-" +#define DEFAULT_FORMAT_ENCRYPTED_PUBLIC_NOTICE_FSET "%@%Y-%n$1%K/%n$3%Y-%n $4-" #define DEFAULT_FORMAT_FLOOD_FSET "%Y$1%n flood detected from %G$2%K(%g$3%K)%n on %K[%G$4%K]" #define DEFAULT_FORMAT_FRIEND_JOIN_FSET "$G %R$1 %K[%c$2%K]%n has joined $3" #define DEFAULT_FORMAT_HELP_FSET "$0-" diff --git a/include/cset.h b/include/cset.h index 81a048d..05cdcbe 100644 --- a/include/cset.h +++ b/include/cset.h @@ -195,6 +195,8 @@ FORMAT_EBANS_FOOTER_FSET, FORMAT_EBANS_HEADER_FSET, FORMAT_ENCRYPTED_NOTICE_FSET, FORMAT_ENCRYPTED_PRIVMSG_FSET, +FORMAT_ENCRYPTED_PUBLIC_FSET, +FORMAT_ENCRYPTED_PUBLIC_NOTICE_FSET, FORMAT_FLOOD_FSET, FORMAT_FRIEND_JOIN_FSET, FORMAT_HELP_FSET, diff --git a/source/ctcp.c b/source/ctcp.c index ed2b500..0ea3a9a 100644 --- a/source/ctcp.c +++ b/source/ctcp.c @@ -640,7 +640,12 @@ CTCP_HANDLER(do_sed) */ char *ptr = do_ctcp(from, to, ret); if (*ptr && do_hook(ENCRYPTED_PRIVMSG_LIST, "%s %s %s", from, to, ptr)) - put_it("%s",convert_output_format(fget_string_var(FORMAT_ENCRYPTED_PRIVMSG_FSET), "%s %s %s %s %s", update_clock(GET_TIME), from, FromUserHost, to, ptr)); + { + if (is_channel(to)) + put_it("%s",convert_output_format(fget_string_var(FORMAT_ENCRYPTED_PUBLIC_FSET), "%s %s %s %s %s", update_clock(GET_TIME), from, FromUserHost, to, ptr)); + else + put_it("%s",convert_output_format(fget_string_var(FORMAT_ENCRYPTED_PRIVMSG_FSET), "%s %s %s %s", update_clock(GET_TIME), from, FromUserHost, ptr)); + } *ret = 0; } else @@ -667,7 +672,12 @@ CTCP_HANDLER(do_sed_reply) */ char *ptr = do_notice_ctcp(from, to, ret); if (*ptr && do_hook(ENCRYPTED_NOTICE_LIST, "%s %s %s", from, to, ptr)) - put_it("%s",convert_output_format(fget_string_var(FORMAT_ENCRYPTED_NOTICE_FSET), "%s %s %s %s %s", update_clock(GET_TIME), from, FromUserHost, to, ptr)); + { + if (is_channel(to)) + put_it("%s",convert_output_format(fget_string_var(FORMAT_ENCRYPTED_PUBLIC_NOTICE_FSET), "%s %s %s %s %s", update_clock(GET_TIME), from, FromUserHost, to, ptr)); + else + put_it("%s",convert_output_format(fget_string_var(FORMAT_ENCRYPTED_NOTICE_FSET), "%s %s %s %s", update_clock(GET_TIME), from, FromUserHost, ptr)); + } *ret = 0; } else diff --git a/source/fset.c b/source/fset.c index c328e3d..0e39785 100644 --- a/source/fset.c +++ b/source/fset.c @@ -80,6 +80,8 @@ IrcVariable fset_array[] = { "EBANS_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, { "ENCRYPTED_NOTICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, { "ENCRYPTED_PRIVMSG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, + { "ENCRYPTED_PUBLIC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, + { "ENCRYPTED_PUBLIC_NOTICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, { "FLOOD", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, { "FRIEND_JOIN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, { "HELP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, @@ -597,6 +599,8 @@ void create_fsets(Window *win, int ansi) fset_string_var(FORMAT_DISCONNECT_FSET, DEFAULT_FORMAT_DISCONNECT_FSET); fset_string_var(FORMAT_ENCRYPTED_NOTICE_FSET, DEFAULT_FORMAT_ENCRYPTED_NOTICE_FSET); fset_string_var(FORMAT_ENCRYPTED_PRIVMSG_FSET, DEFAULT_FORMAT_ENCRYPTED_PRIVMSG_FSET); + fset_string_var(FORMAT_ENCRYPTED_PUBLIC_FSET, DEFAULT_FORMAT_ENCRYPTED_PUBLIC_FSET); + fset_string_var(FORMAT_ENCRYPTED_PUBLIC_NOTICE_FSET, DEFAULT_FORMAT_ENCRYPTED_PUBLIC_NOTICE_FSET); fset_string_var(FORMAT_FLOOD_FSET, DEFAULT_FORMAT_FLOOD_FSET); fset_string_var(FORMAT_FRIEND_JOIN_FSET, DEFAULT_FORMAT_FRIEND_JOIN_FSET); fset_string_var(FORMAT_HELP_FSET, DEFAULT_FORMAT_HELP_FSET);