irc: fix /join on a channel buffer opened with autojoin but which failed to join
(cherry picked from commit 860ca4be20fcec36f4f130c7e74339672257c2a7)
This commit is contained in:
parent
d611982ba6
commit
d039fd0f8c
@ -17,6 +17,8 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
|
||||
|
||||
=== Bugs fixed
|
||||
|
||||
* irc: fix /join on a channel buffer opened with autojoin but which failed to
|
||||
join
|
||||
* irc: send QUIT to server and no PART for channels when the server buffer
|
||||
is closed (closes #294)
|
||||
* irc: fix order of channel buffers opened when option irc.look.server_buffer
|
||||
|
@ -2330,6 +2330,7 @@ irc_command_join (void *data, struct t_gui_buffer *buffer, int argc,
|
||||
char **argv, char **argv_eol)
|
||||
{
|
||||
int i, arg_channels, noswitch;
|
||||
const char *ptr_type, *ptr_server_name, *ptr_channel_name;
|
||||
|
||||
IRC_BUFFER_GET_SERVER_CHANNEL(buffer);
|
||||
|
||||
@ -2363,6 +2364,18 @@ irc_command_join (void *data, struct t_gui_buffer *buffer, int argc,
|
||||
}
|
||||
}
|
||||
|
||||
if (!ptr_server)
|
||||
{
|
||||
if ((weechat_buffer_get_pointer (buffer,
|
||||
"plugin") == weechat_irc_plugin))
|
||||
{
|
||||
ptr_server_name = weechat_buffer_get_string (buffer,
|
||||
"localvar_server");
|
||||
if (ptr_server_name)
|
||||
ptr_server = irc_server_search (ptr_server_name);
|
||||
}
|
||||
}
|
||||
|
||||
IRC_COMMAND_CHECK_SERVER("join", 1);
|
||||
|
||||
if (arg_channels < argc)
|
||||
@ -2379,7 +2392,21 @@ irc_command_join (void *data, struct t_gui_buffer *buffer, int argc,
|
||||
1, noswitch);
|
||||
}
|
||||
else
|
||||
WEECHAT_COMMAND_ERROR;
|
||||
{
|
||||
ptr_type = weechat_buffer_get_string (buffer, "localvar_type");
|
||||
ptr_channel_name = weechat_buffer_get_string (buffer,
|
||||
"localvar_channel");
|
||||
if ((weechat_buffer_get_pointer (buffer,
|
||||
"plugin") == weechat_irc_plugin)
|
||||
&& ptr_type && ptr_channel_name
|
||||
&& (strcmp (ptr_type, "channel") == 0))
|
||||
{
|
||||
irc_command_join_server (ptr_server, ptr_channel_name,
|
||||
1, noswitch);
|
||||
}
|
||||
else
|
||||
WEECHAT_COMMAND_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
|
Loading…
x
Reference in New Issue
Block a user