From e7bf09f4e87eb7e05d5fa6066b7ab3886d94cacb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Fri, 18 Aug 2023 23:57:35 +0200 Subject: [PATCH] irc: fix wrong time displayed for CTCP messages received from self nick (issue #2000) --- ChangeLog.adoc | 1 + src/plugins/irc/irc-command.c | 6 ++++++ src/plugins/irc/irc-input.c | 12 +++++++----- src/plugins/irc/irc-input.h | 3 +++ src/plugins/irc/irc-protocol.c | 6 ++++-- 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 8cdbb3e6b..56480e830 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -19,6 +19,7 @@ Bug fixes:: * core: fix increment/decrement of options weechat.notify.* * irc: add missing tags on multiline messages (issue #1987) * irc: fix redirection of command `/list` when the reply doesn't start with message 321 (start of /list) + * irc: fix wrong time displayed for CTCP messages received from self nick (issue #2000) * scripts: fix function string_parse_size on 32-bit systems (python and ruby) (issue #1999) * xfer: fix conversion of string to IPv4 on 32-bit systems (issue #1999) diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index 56c49ee10..5d3421167 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -385,6 +385,7 @@ irc_command_me_channel_message (struct t_irc_server *server, { irc_input_user_message_display ( server, + 0, /* date */ channel_name, NULL, /* address */ "privmsg", @@ -1970,6 +1971,7 @@ IRC_COMMAND_CALLBACK(ctcp) { irc_input_user_message_display ( ptr_server, + 0, /* date */ ctcp_target, NULL, /* address */ "privmsg", @@ -3735,6 +3737,7 @@ IRC_COMMAND_CALLBACK(msg) { irc_input_user_message_display ( ptr_server, + 0, /* date */ ptr_channel->name, NULL, /* address */ "privmsg", @@ -3755,6 +3758,7 @@ IRC_COMMAND_CALLBACK(msg) { irc_input_user_message_display ( ptr_server, + 0, /* date */ targets[i], NULL, /* address */ "privmsg", @@ -3910,6 +3914,7 @@ IRC_COMMAND_CALLBACK(notice) ptr_message = (const char *)weechat_arraylist_get (list_messages, i); irc_input_user_message_display ( ptr_server, + 0, /* date */ argv[arg_target], NULL, /* address */ "notice", @@ -4439,6 +4444,7 @@ IRC_COMMAND_CALLBACK(query) { irc_input_user_message_display ( ptr_server, + 0, /* date */ ptr_channel->name, NULL, /* address */ "privmsg", diff --git a/src/plugins/irc/irc-input.c b/src/plugins/irc/irc-input.c index d0cae36c1..40db8ed1e 100644 --- a/src/plugins/irc/irc-input.c +++ b/src/plugins/irc/irc-input.c @@ -62,6 +62,7 @@ void irc_input_user_message_display (struct t_irc_server *server, + time_t date, const char *target, const char *address, const char *command, @@ -162,7 +163,7 @@ irc_input_user_message_display (struct t_irc_server *server, { weechat_printf_date_tags ( ptr_buffer, - 0, + date, irc_protocol_tags ( server, command, @@ -189,7 +190,7 @@ irc_input_user_message_display (struct t_irc_server *server, { weechat_printf_date_tags ( ptr_buffer, - 0, + date, irc_protocol_tags ( server, command, @@ -211,7 +212,7 @@ irc_input_user_message_display (struct t_irc_server *server, { weechat_printf_date_tags ( ptr_buffer, - 0, + date, irc_protocol_tags ( server, command, @@ -235,7 +236,7 @@ irc_input_user_message_display (struct t_irc_server *server, { weechat_printf_date_tags ( ptr_buffer, - 0, + date, irc_protocol_tags ( server, command, @@ -267,7 +268,7 @@ irc_input_user_message_display (struct t_irc_server *server, { weechat_printf_date_tags ( ptr_buffer, - 0, + date, irc_protocol_tags ( server, command, @@ -333,6 +334,7 @@ irc_input_send_user_message (struct t_gui_buffer *buffer, int flags, { irc_input_user_message_display ( ptr_server, + 0, /* date */ ptr_channel->name, NULL, /* address */ "privmsg", diff --git a/src/plugins/irc/irc-input.h b/src/plugins/irc/irc-input.h index f4f43c139..a01c404da 100644 --- a/src/plugins/irc/irc-input.h +++ b/src/plugins/irc/irc-input.h @@ -20,9 +20,12 @@ #ifndef WEECHAT_PLUGIN_IRC_INPUT_H #define WEECHAT_PLUGIN_IRC_INPUT_H +#include + struct t_gui_buffer; extern void irc_input_user_message_display (struct t_irc_server *server, + time_t date, const char *target, const char *address, const char *command, diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 2c45250b9..aae257e87 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -2989,6 +2989,7 @@ IRC_PROTOCOL_CALLBACK(pong) void irc_protocol_privmsg_display_ctcp_send (struct t_irc_server *server, + time_t date, const char *target, const char *address, const char *arguments) @@ -3014,6 +3015,7 @@ irc_protocol_privmsg_display_ctcp_send (struct t_irc_server *server, irc_input_user_message_display ( server, + date, target, address, "privmsg", @@ -3093,7 +3095,7 @@ IRC_PROTOCOL_CALLBACK(privmsg) if (nick_is_me) { irc_protocol_privmsg_display_ctcp_send ( - server, params[0], address, msg_args); + server, date, params[0], address, msg_args); } else { @@ -3211,7 +3213,7 @@ IRC_PROTOCOL_CALLBACK(privmsg) if (nick_is_me && cap_echo_message && !msg_already_received) { irc_protocol_privmsg_display_ctcp_send ( - server, remote_nick, address, msg_args); + server, date, remote_nick, address, msg_args); } else {