diff --git a/Changelog b/Changelog index ca7a4fd..0caad5c 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,7 @@ [Changes 1.2c01] +* Add /FSET CHANNEL_URL for services channel URL numeric. (caf) + * Fix crash bug in $mircansi() scripting function. (caf) * Add half-op support to /topic and /untopic. (caf) diff --git a/include/color.h b/include/color.h index c806931..881cee4 100644 --- a/include/color.h +++ b/include/color.h @@ -67,6 +67,7 @@ #define DEFAULT_FORMAT_BWALL_FSET "%K[%cWallOp%K/%c$2%K] %n$4-" #define DEFAULT_FORMAT_CHANNEL_SIGNOFF_FSET "$G %nSignOff%K: %W$1 %K(%n$4-%K)" +#define DEFAULT_FORMAT_CHANNEL_URL_FSET "$G URL for %c$1%K:%n $2-" #define DEFAULT_FORMAT_CONNECT_FSET "$G Connecting to server $1/%c$2%n" /* Done CTCP */ @@ -499,6 +500,7 @@ #define DEFAULT_FORMAT_BWALL_FSET "[%GBX-Wall%n/%W$1:$2%n] $4-" #define DEFAULT_FORMAT_CHANNEL_SIGNOFF_FSET "$G %nSignOff %W$1%n: $3 %K(%n$4-%K)" +#define DEFAULT_FORMAT_CHANNEL_URL_FSET "$G URL %K(%c$1%K):%n $2-" #define DEFAULT_FORMAT_CONNECT_FSET "$G Connecting to server $1/%c$2%n" #define DEFAULT_FORMAT_COMPLETE_FSET "%K[%n$[15]0%K] [%n$[15]1%K] [%n$[15]2%K] [%n$[15]3%K]" diff --git a/include/cset.h b/include/cset.h index e766182..c6c54d5 100644 --- a/include/cset.h +++ b/include/cset.h @@ -165,6 +165,7 @@ FORMAT_BOT_HEADER_FSET, FORMAT_BWALL_FSET, FORMAT_CHANNEL_SIGNOFF_FSET, +FORMAT_CHANNEL_URL_FSET, FORMAT_COMPLETE_FSET, FORMAT_CONNECT_FSET, diff --git a/source/fset.c b/source/fset.c index e4b2ad1..8bb3af0 100644 --- a/source/fset.c +++ b/source/fset.c @@ -47,6 +47,7 @@ IrcVariable fset_array[] = { "BWALL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, { "CHANNEL_SIGNOFF", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, + { "CHANNEL_URL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, { "COMPLETE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, { "CONNECT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0}, @@ -574,6 +575,7 @@ void create_fsets(Window *win, int ansi) fset_string_var(FORMAT_BOT_FSET, DEFAULT_FORMAT_BOT_FSET); fset_string_var(FORMAT_BWALL_FSET, DEFAULT_FORMAT_BWALL_FSET); fset_string_var(FORMAT_CHANNEL_SIGNOFF_FSET, DEFAULT_FORMAT_CHANNEL_SIGNOFF_FSET); + fset_string_var(FORMAT_CHANNEL_URL_FSET, DEFAULT_FORMAT_CHANNEL_URL_FSET); fset_string_var(FORMAT_CONNECT_FSET, DEFAULT_FORMAT_CONNECT_FSET); fset_string_var(FORMAT_COMPLETE_FSET, DEFAULT_FORMAT_COMPLETE_FSET); fset_string_var(FORMAT_CTCP_FSET, DEFAULT_FORMAT_CTCP_FSET); diff --git a/source/numbers.c b/source/numbers.c index dbb767c..d2a455e 100644 --- a/source/numbers.c +++ b/source/numbers.c @@ -1509,6 +1509,17 @@ void numbered_command(char *from, int comm, char **ArgList) put_it("%s Your user mode is [%s]", numeric_banner(), ArgList?ArgList[0]:space); break; + case 328: /* #define RPL_CHANNELURL 328 (atheme, bahamut, freenode) */ + { + const char *channel = ArgList[0]; + const char *url = ArgList[1] ? ArgList[1] : empty_string; + + set_display_target(channel, LOG_CRAP); + put_it("%s", convert_output_format(fget_string_var(FORMAT_CHANNEL_URL_FSET), "%s %s %s", update_clock(GET_TIME), channel, url)); + reset_display_target(); + break; + } + case 329: /* #define CREATION_TIME 329 */ { unsigned long ts;