From ff251080da2a5d35bd5213c1591d5efb6698a4e9 Mon Sep 17 00:00:00 2001 From: Kevin Easton Date: Sat, 27 Jun 2015 23:18:38 +1000 Subject: [PATCH] Add get_kill_reason() that uses BitchX.kill, and convert all /KILL users to it Previously only send_kill() used BitchX.kill - the other KILL commands (eg. /WHOKILL) were using the random kick reasons. Standardise them all on BitchX.kill, and add this file to the source so it can be installed along with the other random reason files. --- BitchX.kill | 2 ++ Changelog | 5 ++- Makefile.in | 3 ++ configure | 11 ++++++- configure.in | 8 +++-- include/defs.h.in | 7 +++-- include/misc.h | 7 +++-- source/commands.c | 76 ++++++++++++++++------------------------------ source/commands2.c | 26 ++++++++++------ source/misc.c | 25 ++++++++------- 10 files changed, 90 insertions(+), 80 deletions(-) create mode 100644 BitchX.kill diff --git a/BitchX.kill b/BitchX.kill new file mode 100644 index 0000000..1e72269 --- /dev/null +++ b/BitchX.kill @@ -0,0 +1,2 @@ +# You can populate this file for randomly-chosen /KILL reasons. +# $0 is replaced by the target nick and $1 by your nick. diff --git a/Changelog b/Changelog index fdff436..9a95051 100644 --- a/Changelog +++ b/Changelog @@ -1,7 +1,10 @@ [Changes 1.2.2] +* Use BitchX.kill in all cases for random /KILL messages, and install a + copy of this file. (caf) + * Fix potential crash in /unban, and change it so that it correctly matches - the user@ portion of the hostmask. + the user@ portion of the hostmask. (caf) * Clean up the build by fixing up the (unsigned char *) / (char *) mismatches that the compiler warns about. (caf) diff --git a/Makefile.in b/Makefile.in index 8788295..95551ab 100644 --- a/Makefile.in +++ b/Makefile.in @@ -92,6 +92,7 @@ DEFAULT_MSGLOGFILE = @DEFAULT_MSGLOGFILE@ DEFAULT_BITCHX_HELP_FILE = @DEFAULT_BITCHX_HELP_FILE@ DEFAULT_SCRIPT_HELP_FILE = @DEFAULT_SCRIPT_HELP_FILE@ DEFAULT_BITCHX_KICK_FILE = @DEFAULT_BITCHX_KICK_FILE@ +DEFAULT_BITCHX_KILL_FILE = @DEFAULT_BITCHX_KILL_FILE@ DEFAULT_BITCHX_QUIT_FILE = @DEFAULT_BITCHX_QUIT_FILE@ DEFAULT_BITCHX_IRCNAME_FILE = @DEFAULT_BITCHX_IRCNAME_FILE@ @@ -238,6 +239,7 @@ installirc: installdirs $(_VERSION_) $(INSTALL_DATA) $(top_srcdir)/BitchX.ircnames $(DESTDIR)$(IRCLIB)/$(DEFAULT_BITCHX_IRCNAME_FILE) $(INSTALL_DATA) $(top_srcdir)/BitchX.quit $(DESTDIR)$(IRCLIB)/$(DEFAULT_BITCHX_QUIT_FILE) $(INSTALL_DATA) $(top_srcdir)/BitchX.reasons $(DESTDIR)$(IRCLIB)/$(DEFAULT_BITCHX_KICK_FILE) + $(INSTALL_DATA) $(top_srcdir)/BitchX.kill $(DESTDIR)$(IRCLIB)/$(DEFAULT_BITCHX_KILL_FILE) $(WINNT_INSTALL) install_local: all local_installdirs installdll_local @@ -248,6 +250,7 @@ install_local: all local_installdirs installdll_local $(INSTALL_DATA) $(top_srcdir)/BitchX.ircnames $(DEFAULT_CTOOLZ_DIR)/$(DEFAULT_BITCHX_IRCNAME_FILE) $(INSTALL_DATA) $(top_srcdir)/BitchX.quit $(DEFAULT_CTOOLZ_DIR)/$(DEFAULT_BITCHX_QUIT_FILE) $(INSTALL_DATA) $(top_srcdir)/BitchX.reasons $(DEFAULT_CTOOLZ_DIR)/$(DEFAULT_BITCHX_KICK_FILE) + $(INSTALL_DATA) $(top_srcdir)/BitchX.kill $(DEFAULT_CTOOLZ_DIR)/$(DEFAULT_BITCHX_KILL_FILE) wserv: .config.h $(srcdir)/source/wserv.c $(srcdir)/source/term.c $(srcdir)/Makefile cd source \ diff --git a/configure b/configure index 83f0d8a..3975ec7 100755 --- a/configure +++ b/configure @@ -309,7 +309,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS topdir VERSION_NUMBER CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S MAKE SET_MAKE CPP EGREP AWK ALLOCA GLIB_CONFIG GLIB_CFLAGS GLIB_LIBS GTK_CONFIG GTK_CFLAGS GTK_LIBS IMLIB_CONFIG GDK_IMLIB_CFLAGS GDK_IMLIB_LIBS GNOME_CONFIG GNOME_CFLAGS GNOME_LIBS X_O ESD_CONFIG ESD_CFLAGS ESD_LIBS AUDIOFILE_CONFIG AUDIOFILE_CFLAGS AUDIOFILE_LIBS VERSION _VERSION_ EXTRAS INSTALL_EXTRAS TCL_LIBS TCL_SRCS TCL_OBJS CD_SRCS CD_OBJS XMMS_CONFIG XMMS_CFLAGS XMMS_LIBS XMMS_VERSION XMMS_DATA_DIR XMMS_PLUGIN_DIR XMMS_VISUALIZATION_PLUGIN_DIR XMMS_INPUT_PLUGIN_DIR XMMS_OUTPUT_PLUGIN_DIR XMMS_GENERAL_PLUGIN_DIR XMMS_EFFECT_PLUGIN_DIR MYSQL_LIBS PLUGINS SHLIB_CFLAGS SHLIB_LD SHLIB_SUFFIX RM CP MV GZIP_ENV BZIP2 INSTALL_IRC IRCLIB IRCPATH TRANSLATION_PATH HELPDIR INSTALL_WSERV INSTALL_SCRBX PLUGINDIR INCLUDES GUI_SRCS HAVE_INET_ATON DEFAULT_CTOOLZ_DIR DEFAULT_MSGLOGFILE DEFAULT_BITCHX_HELP_FILE DEFAULT_SCRIPT_HELP_FILE DEFAULT_BITCHX_KICK_FILE DEFAULT_BITCHX_QUIT_FILE DEFAULT_BITCHX_IRCNAME_FILE HINT_FILE WINNT_INSTALL LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS topdir VERSION_NUMBER CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S MAKE SET_MAKE CPP EGREP AWK ALLOCA GLIB_CONFIG GLIB_CFLAGS GLIB_LIBS GTK_CONFIG GTK_CFLAGS GTK_LIBS IMLIB_CONFIG GDK_IMLIB_CFLAGS GDK_IMLIB_LIBS GNOME_CONFIG GNOME_CFLAGS GNOME_LIBS X_O ESD_CONFIG ESD_CFLAGS ESD_LIBS AUDIOFILE_CONFIG AUDIOFILE_CFLAGS AUDIOFILE_LIBS VERSION _VERSION_ EXTRAS INSTALL_EXTRAS TCL_LIBS TCL_SRCS TCL_OBJS CD_SRCS CD_OBJS XMMS_CONFIG XMMS_CFLAGS XMMS_LIBS XMMS_VERSION XMMS_DATA_DIR XMMS_PLUGIN_DIR XMMS_VISUALIZATION_PLUGIN_DIR XMMS_INPUT_PLUGIN_DIR XMMS_OUTPUT_PLUGIN_DIR XMMS_GENERAL_PLUGIN_DIR XMMS_EFFECT_PLUGIN_DIR MYSQL_LIBS PLUGINS SHLIB_CFLAGS SHLIB_LD SHLIB_SUFFIX RM CP MV GZIP_ENV BZIP2 INSTALL_IRC IRCLIB IRCPATH TRANSLATION_PATH HELPDIR INSTALL_WSERV INSTALL_SCRBX PLUGINDIR INCLUDES GUI_SRCS HAVE_INET_ATON DEFAULT_CTOOLZ_DIR DEFAULT_MSGLOGFILE DEFAULT_BITCHX_HELP_FILE DEFAULT_SCRIPT_HELP_FILE DEFAULT_BITCHX_KICK_FILE DEFAULT_BITCHX_KILL_FILE DEFAULT_BITCHX_QUIT_FILE DEFAULT_BITCHX_IRCNAME_FILE HINT_FILE WINNT_INSTALL LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -15756,6 +15756,7 @@ if test -n "$CYGWIN" -o -n "$EMXOS2" -o -n "$MINGWIN32"; then DEFAULT_BITCHX_HELP_FILE="BitchX.hlp" DEFAULT_SCRIPT_HELP_FILE="BitchX.hlp" DEFAULT_BITCHX_KICK_FILE="BitchX.kck" + DEFAULT_BITCHX_KILL_FILE="BitchX.kil" DEFAULT_BITCHX_QUIT_FILE="BitchX.qt" DEFAULT_BITCHX_IRCNAME_FILE="BitchX.nam" WINNT_INSTALL="\$(INSTALL_DATA) \$(top_srcdir)/doc/BitchX.ico \$(DESTDIR)\$(IRCLIB); \$(INSTALL_DATA) \$(top_srcdir)/doc/BitchX.bat \$(DESTDIR)\$(IRCLIB); \$(INSTALL_DATA) \$(top_srcdir)/doc/bx-rc \$(DESTDIR)\$(IRCLIB); \$(MV) \$(DESTDIR)\$(IRCLIB)/\$(VERSION)\$(EXEEXT) \$(DESTDIR)\$(IRCLIB)/\$(_VERSION_)\$(EXEEXT); \$(RM) \$(DESTDIR)\$(IRCLIB)/\$(_VERSION_).old" @@ -15776,6 +15777,7 @@ else DEFAULT_BITCHX_HELP_FILE="BitchX.help" DEFAULT_SCRIPT_HELP_FILE="BitchX.help" DEFAULT_BITCHX_KICK_FILE="BitchX.kick" + DEFAULT_BITCHX_KILL_FILE="BitchX.kill" DEFAULT_BITCHX_QUIT_FILE="BitchX.quit" DEFAULT_BITCHX_IRCNAME_FILE="BitchX.ircnames" HINT_FILE="BitchX.hints" @@ -15835,6 +15837,12 @@ _ACEOF +cat >>confdefs.h <<_ACEOF +#define DEFAULT_BITCHX_KILL_FILE "$DEFAULT_BITCHX_KILL_FILE" +_ACEOF + + + cat >>confdefs.h <<_ACEOF #define DEFAULT_BITCHX_QUIT_FILE "$DEFAULT_BITCHX_QUIT_FILE" _ACEOF @@ -16588,6 +16596,7 @@ s,@DEFAULT_MSGLOGFILE@,$DEFAULT_MSGLOGFILE,;t t s,@DEFAULT_BITCHX_HELP_FILE@,$DEFAULT_BITCHX_HELP_FILE,;t t s,@DEFAULT_SCRIPT_HELP_FILE@,$DEFAULT_SCRIPT_HELP_FILE,;t t s,@DEFAULT_BITCHX_KICK_FILE@,$DEFAULT_BITCHX_KICK_FILE,;t t +s,@DEFAULT_BITCHX_KILL_FILE@,$DEFAULT_BITCHX_KILL_FILE,;t t s,@DEFAULT_BITCHX_QUIT_FILE@,$DEFAULT_BITCHX_QUIT_FILE,;t t s,@DEFAULT_BITCHX_IRCNAME_FILE@,$DEFAULT_BITCHX_IRCNAME_FILE,;t t s,@HINT_FILE@,$HINT_FILE,;t t diff --git a/configure.in b/configure.in index 4090661..c3cbc19 100644 --- a/configure.in +++ b/configure.in @@ -1002,6 +1002,7 @@ if test -n "$CYGWIN" -o -n "$EMXOS2" -o -n "$MINGWIN32"; then DEFAULT_BITCHX_HELP_FILE="BitchX.hlp" DEFAULT_SCRIPT_HELP_FILE="BitchX.hlp" DEFAULT_BITCHX_KICK_FILE="BitchX.kck" + DEFAULT_BITCHX_KILL_FILE="BitchX.kil" DEFAULT_BITCHX_QUIT_FILE="BitchX.qt" DEFAULT_BITCHX_IRCNAME_FILE="BitchX.nam" WINNT_INSTALL="\$(INSTALL_DATA) \$(top_srcdir)/doc/BitchX.ico \$(DESTDIR)\$(IRCLIB); \$(INSTALL_DATA) \$(top_srcdir)/doc/BitchX.bat \$(DESTDIR)\$(IRCLIB); \$(INSTALL_DATA) \$(top_srcdir)/doc/bx-rc \$(DESTDIR)\$(IRCLIB); \$(MV) \$(DESTDIR)\$(IRCLIB)/\$(VERSION)\$(EXEEXT) \$(DESTDIR)\$(IRCLIB)/\$(_VERSION_)\$(EXEEXT); \$(RM) \$(DESTDIR)\$(IRCLIB)/\$(_VERSION_).old" @@ -1022,6 +1023,7 @@ else DEFAULT_BITCHX_HELP_FILE="BitchX.help" DEFAULT_SCRIPT_HELP_FILE="BitchX.help" DEFAULT_BITCHX_KICK_FILE="BitchX.kick" + DEFAULT_BITCHX_KILL_FILE="BitchX.kill" DEFAULT_BITCHX_QUIT_FILE="BitchX.quit" DEFAULT_BITCHX_IRCNAME_FILE="BitchX.ircnames" HINT_FILE="BitchX.hints" @@ -1066,9 +1068,11 @@ AC_DEFINE_UNQUOTED(DEFAULT_BITCHX_HELP_FILE, "$DEFAULT_BITCHX_HELP_FILE", Defaul AC_SUBST(DEFAULT_BITCHX_HELP_FILE) AC_DEFINE_UNQUOTED(DEFAULT_SCRIPT_HELP_FILE, "$DEFAULT_SCRIPT_HELP_FILE", Default BitchX script file.) AC_SUBST(DEFAULT_SCRIPT_HELP_FILE) -AC_DEFINE_UNQUOTED(DEFAULT_BITCHX_KICK_FILE, "$DEFAULT_BITCHX_KICK_FILE", Default BitchX kick file.) +AC_DEFINE_UNQUOTED(DEFAULT_BITCHX_KICK_FILE, "$DEFAULT_BITCHX_KICK_FILE", Default BitchX kick reasons file.) AC_SUBST(DEFAULT_BITCHX_KICK_FILE) -AC_DEFINE_UNQUOTED(DEFAULT_BITCHX_QUIT_FILE, "$DEFAULT_BITCHX_QUIT_FILE", Default BitchX quit file.) +AC_DEFINE_UNQUOTED(DEFAULT_BITCHX_KILL_FILE, "$DEFAULT_BITCHX_KILL_FILE", Default BitchX kill reasons file.) +AC_SUBST(DEFAULT_BITCHX_KILL_FILE) +AC_DEFINE_UNQUOTED(DEFAULT_BITCHX_QUIT_FILE, "$DEFAULT_BITCHX_QUIT_FILE", Default BitchX quit reasons file.) AC_SUBST(DEFAULT_BITCHX_QUIT_FILE) AC_DEFINE_UNQUOTED(DEFAULT_BITCHX_IRCNAME_FILE, "$DEFAULT_BITCHX_IRCNAME_FILE", Default BitchX ircname file.) AC_SUBST(DEFAULT_BITCHX_IRCNAME_FILE) diff --git a/include/defs.h.in b/include/defs.h.in index 1f3d836..72f9674 100644 --- a/include/defs.h.in +++ b/include/defs.h.in @@ -17,10 +17,13 @@ /* Default BitchX ircname file. */ #undef DEFAULT_BITCHX_IRCNAME_FILE -/* Default BitchX kick file. */ +/* Default BitchX kick reasons file. */ #undef DEFAULT_BITCHX_KICK_FILE -/* Default BitchX quit file. */ +/* Default BitchX kill reasons file. */ +#undef DEFAULT_BITCHX_KILL_FILE + +/* Default BitchX quit reasons file. */ #undef DEFAULT_BITCHX_QUIT_FILE /* Default CToolZ directory. */ diff --git a/include/misc.h b/include/misc.h index 58725ce..3c50333 100644 --- a/include/misc.h +++ b/include/misc.h @@ -102,9 +102,10 @@ ChannelList * BX_prepare_command (int *, char *, int); int are_you_opped (char *); void error_not_opped (const char *); - char *get_reason (char *, char *); - char *get_realname(char *); - char *get_signoffreason (char *); +char *get_reason(const char *nick, const char *file); +char *get_kill_reason(const char *target, const char *nick); +char *get_realname(const char *nick); +char *get_signoffreason(const char *nick); int isme (char *); char *BX_convert_output_format (const char *, const char *, ...); diff --git a/source/commands.c b/source/commands.c index 1adf709..12acb3a 100644 --- a/source/commands.c +++ b/source/commands.c @@ -3625,65 +3625,41 @@ BUILT_IN_COMMAND(send_2comm) BUILT_IN_COMMAND(send_kill) { - char *reason = NULL; - char *r_file; - char *nick; - char *arg = NULL, *save_arg = NULL; - -#if 0 - args = next_arg(args, &reason); - if (!args) - args = empty_string; -#endif - -#if defined(WINNT) - r_file = m_sprintf("%s/BitchX.kil",get_string_var(CTOOLZ_DIR_VAR)); -#else - r_file = m_sprintf("%s/BitchX.kill",get_string_var(CTOOLZ_DIR_VAR)); -#endif - - if ((reason = strchr(args, ' ')) != NULL) - *reason++ = '\0'; - else - if ((reason = get_reason(args, r_file))) - reason = empty_string; - new_free(&r_file); + char *target; - if (!strcmp(args, "*")) + target = next_arg(args, &args); + + if (!strcmp(target, "*")) { - ChannelList *chan = NULL; + ChannelList *chan = lookup_channel("*", from_server, 0); NickList *n = NULL; - arg = get_current_channel_by_refnum(0); - if (!arg || !*arg) - return; /* what-EVER */ - else + + if (!chan) + return; + for (n = next_nicklist(chan, NULL); n; n = next_nicklist(chan, n)) { - if (!(chan = lookup_channel(arg, from_server, 0))) - return; - arg = NULL; - for (n = next_nicklist(chan, NULL); n; n = next_nicklist(chan, n)) - { - if (isme(n->nick)) continue; - m_s3cat(&arg, ",", n->nick); - } - save_arg = arg; + if (isme(n->nick)) + continue; + + if (args && *args) + send_to_server("%s %s :%s", command, n->nick, args); + else + send_to_server("%s %s :%s", command, n->nick, + get_kill_reason(n->nick, get_server_nickname(from_server))); } } else { - malloc_strcpy(&arg, args); - save_arg = arg; + const char *nick; + while ((nick = next_in_comma_list(target, &target)) && *nick) + { + if (args && *args) + send_to_server("%s %s :%s", command, nick, args); + else + send_to_server("%s %s :%s", command, nick, + get_kill_reason(nick, get_server_nickname(from_server))); + } } - while ((nick = next_in_comma_list(arg, &arg))) - { - if (!nick || !*nick) - break; - if (reason && *reason) - send_to_server("%s %s :%s", command, nick, reason); - else - send_to_server("%s %s", command, nick); - } - new_free(&save_arg); } /* diff --git a/source/commands2.c b/source/commands2.c index 4dff1ac..a25520b 100644 --- a/source/commands2.c +++ b/source/commands2.c @@ -977,14 +977,14 @@ char *reason = NULL; void who_user_killend(WhoEntry *w, char *unused, char **unused1) { -char *pattern, *match, *who_buff, *reason; -int server = -1; + char *pattern, *match, *who_buff, *who_reason; + int server = -1; if (w->who_buff) { who_buff = LOCAL_COPY(w->who_buff); - reason = strchr(who_buff, ':'); - *reason++ = 0; + who_reason = strchr(who_buff, ':'); + *who_reason++ = 0; server = atol(next_arg(who_buff, &who_buff)); pattern = next_arg(who_buff, &who_buff); match = next_arg(who_buff, &who_buff); @@ -1008,6 +1008,9 @@ int server = -1; m_s3cat(&buffer, ",", nick); if (num >= get_int_var(NUM_KILLS_VAR)) { + const char *reason = who_reason; + if (!*reason) + reason = get_kill_reason(buffer, get_server_nickname(from_server)); bitchsay("Killing %s :%s[%d]", save_buffer, reason, count); my_send_to_server(server, "KILL %s :%s(%d)", buffer, reason, count); new_free(&buffer); @@ -1016,6 +1019,9 @@ int server = -1; } if (buffer) { + const char *reason = who_reason; + if (!*reason) + reason = get_kill_reason(buffer, get_server_nickname(from_server)); bitchsay("Killing %s %s[%d]", save_buffer, reason, count); my_send_to_server(server, "KILL %s :%s(%d)", buffer, reason, count); } @@ -1034,19 +1040,19 @@ BUILT_IN_COMMAND(whokill) char *reason = NULL; char *nick_arg = NULL; - if (!args || !*args) + if (!args || !*args) return; if ((reason = strchr(args, ':'))) *reason++ = 0; else - reason = get_reason(empty_string, NULL); + reason = empty_string; while ((pattern = next_arg(args, &args))) { malloc_sprintf(&nick_arg, "%s%s%s", *pattern != '*'?"*":empty_string, pattern, *(pattern+strlen(pattern)-1) != '*'?"*":empty_string); if ((p = strchr(nick_arg, '@'))) p++; - whobase(p ? p : nick_arg, who_user_kill, who_user_killend, "%d %s :%s", from_server, nick_arg, (reason && *reason) ? reason : empty_string); + whobase(p ? p : nick_arg, who_user_kill, who_user_killend, "%d %s :%s", from_server, nick_arg, reason); new_free(&nick_arg); } } @@ -1056,8 +1062,7 @@ static char *treason = NULL; void trace_handlekill(int comm, char *nick) { -static int count = 0; - + static int count = 0; if (!nick || !*nick) { @@ -1077,7 +1082,8 @@ static int count = 0; return; bitchsay("Killing %s[%s] %d", nick, tnick_arg, ++count); if (!treason) - malloc_strcpy(&treason, get_reason(nick, NULL)); + malloc_strcpy(&treason, + get_kill_reason(nick, get_server_nickname(from_server))); send_to_server("KILL %s :%s (%d)", nick, treason, count); } diff --git a/source/misc.c b/source/misc.c index 883cbb0..f9d741a 100644 --- a/source/misc.c +++ b/source/misc.c @@ -1799,22 +1799,25 @@ static char *random_text(const char *filename, const char *arg0, return stripansicodes(convert_output_format(format, "%s %s", arg0, arg1)); } -char *get_reason(char *nick, char *file) +char *get_reason(const char *nick, const char *file) { - char *filename = file; - if (!file || !*file) - filename = DEFAULT_BITCHX_KICK_FILE; + file = DEFAULT_BITCHX_KICK_FILE; - return random_text(filename, nick ? nick : "error", get_server_nickname(from_server), get_string_var(DEFAULT_REASON_VAR)); + return random_text(file, nick ? nick : "error", get_server_nickname(from_server), get_string_var(DEFAULT_REASON_VAR)); } -char *get_realname(char *nick) +char *get_kill_reason(const char *target, const char *nick) +{ + return random_text(DEFAULT_BITCHX_KILL_FILE, target, nick, get_string_var(DEFAULT_REASON_VAR)); +} + +char *get_realname(const char *nick) { return random_text(DEFAULT_BITCHX_IRCNAME_FILE, nick, nick, "Who cares?"); } -char *get_signoffreason(char *nick) +char *get_signoffreason(const char *nick) { return random_text(DEFAULT_BITCHX_QUIT_FILE, nick, nick, "$0 has no reason"); } @@ -4231,8 +4234,8 @@ int count = 0, { if (!isme(nicks->nick)) my_send_to_server(server, "KILL %s :%s (%i", nicks->nick, - args && *args ? args : get_reason(nicks->nick, NULL), - count + 1); + args && *args ? args : get_kill_reason(nicks->nick, + get_server_nickname(from_server)), count + 1); else count--; break; @@ -4310,8 +4313,8 @@ int count = 0, if (!isme(nicks->nick)) { my_send_to_server(server, "KILL %s :%s (%i", nicks->nick, - args && *args ? args : get_reason(nicks->nick, NULL), - count); + args && *args ? args : get_kill_reason(nicks->nick, + get_server_nickname(from_server)), count); } else count--;