Bug fixes::
+ * irc: don't open a new private buffer on `/msg` command when capability echo-message is enabled (issue #2016)
* irc: fix title of private buffers wrongly set to own address when capability echo-message is enabled (issue #2016)
* irc: fix autojoin of channels when private buffers are opened (issue #2012)
* irc: fix string comparison when CASEMAPPING is set to "ascii"
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,
}
}
- 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);
}
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);
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",
* message from self nick in private
* (case of bouncer or if echo-message capability is enabled)
*/
- RECV(":alice!user@host PRIVMSG alice :this is the message ");
- CHECK_PV("alice", "alice", "this is the message ",
- "irc_privmsg,self_msg,notify_none,no_highlight,"
- "prefix_nick_white,nick_alice,host_user@host,log1");
+ RECV(":alice!user@host PRIVMSG bob2 :this is the message ");
+ CHECK_SRV("--", "Msg(alice) -> bob2: this is the message ",
+ "irc_privmsg,self_msg,notify_none,no_highlight,"
+ "nick_alice,host_user@host,log1");
/*
* message from self nick in private, with password hidden (nickserv)
* (case of bouncer or if echo-message capability is enabled)
*/
RECV(":alice!user@host PRIVMSG nickserv :identify secret");
- CHECK_PV("nickserv", "alice", "identify ******",
- "irc_privmsg,self_msg,notify_none,no_highlight,"
- "prefix_nick_white,nick_alice,host_user@host,log1");
+ CHECK_SRV("--", "Msg(alice) -> nickserv: identify ******",
+ "irc_privmsg,self_msg,notify_none,no_highlight,"
+ "nick_alice,host_user@host,log1");
/* broken CTCP to channel */
RECV(":bob!user@host PRIVMSG #test :\01");
}
else
{
- CHECK_PV("alice", "--", "CTCP query to alice: CLIENTINFO",
+ CHECK_SRV("--", "CTCP query to alice: CLIENTINFO",
"irc_privmsg,irc_ctcp,self_msg,notify_none,no_highlight,"
"nick_alice,host_user@host,log1");
/*