1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-04 08:43:13 +02:00

irc: don't open a new private buffer on /msg command when capability echo-message is enabled (issue #2016)

This commit is contained in:
Sébastien Helleu
2023-09-14 11:21:25 +02:00
parent 2c716e8154
commit 8575546aa2
3 changed files with 40 additions and 22 deletions
+31 -14
View File
@@ -3231,7 +3231,7 @@ IRC_PROTOCOL_CALLBACK(privmsg)
if (strcmp (ptr_channel->name, remote_nick) != 0)
irc_channel_pv_rename (server, ptr_channel, remote_nick);
}
else
else if (!nick_is_me)
{
ptr_channel = irc_channel_new (server,
IRC_CHANNEL_TYPE_PRIVATE,
@@ -3247,7 +3247,8 @@ IRC_PROTOCOL_CALLBACK(privmsg)
}
}
if (weechat_config_boolean (irc_config_look_typing_status_nicks))
if (ptr_channel
&& weechat_config_boolean (irc_config_look_typing_status_nicks))
{
irc_typing_channel_set_nick (ptr_channel, nick,
IRC_CHANNEL_TYPING_STATE_OFF);
@@ -3261,7 +3262,8 @@ IRC_PROTOCOL_CALLBACK(privmsg)
}
else
{
irc_channel_set_topic (ptr_channel, address);
if (ptr_channel)
irc_channel_set_topic (ptr_channel, address);
if (weechat_config_boolean (irc_config_look_color_pv_nick_like_channel))
{
color = irc_nick_find_color_name (nick);
@@ -3295,20 +3297,35 @@ IRC_PROTOCOL_CALLBACK(privmsg)
free (str_color);
msg_args2 = (nick_is_me) ?
irc_message_hide_password (server, remote_nick, msg_args) : NULL;
weechat_printf_date_tags (
ptr_channel->buffer,
date,
irc_protocol_tags (server, command, tags, str_tags, nick, address),
"%s%s",
irc_nick_as_prefix (
server, NULL, nick,
(nick_is_me) ?
IRC_COLOR_CHAT_NICK_SELF : irc_nick_color_for_pv (ptr_channel, nick)),
(msg_args2) ? msg_args2 : msg_args);
if (nick_is_me && !ptr_channel)
{
irc_input_user_message_display (
server,
date,
remote_nick,
address,
"privmsg",
NULL, /* ctcp_type */
(msg_args2) ? msg_args2 : msg_args,
1); /* decode_colors */
}
else
{
weechat_printf_date_tags (
ptr_channel->buffer,
date,
irc_protocol_tags (server, command, tags, str_tags, nick, address),
"%s%s",
irc_nick_as_prefix (
server, NULL, nick,
(nick_is_me) ?
IRC_COLOR_CHAT_NICK_SELF : irc_nick_color_for_pv (ptr_channel, nick)),
(msg_args2) ? msg_args2 : msg_args);
}
if (msg_args2)
free (msg_args2);
if (ptr_channel->has_quit_server)
if (ptr_channel && ptr_channel->has_quit_server)
ptr_channel->has_quit_server = 0;
(void) weechat_hook_signal_send ("irc_pv",