1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 05:16:38 +02:00

Fix exec of IRC command when connecting to server if server buffers are merged, and that server is not the selected server

This commit is contained in:
Sebastien Helleu
2009-01-04 10:38:11 +01:00
parent 88aa905ee3
commit ce3091c75f
4 changed files with 30 additions and 9 deletions
+2 -9
View File
@@ -2732,7 +2732,7 @@ irc_command_server (void *data, struct t_gui_buffer *buffer, int argc,
{
int i, detailed_list, one_server_found;
struct t_irc_server *ptr_server2, *server_found, *new_server;
char *server_name, charset_modifier[256];
char *server_name;
IRC_GET_SERVER_CHANNEL(buffer);
@@ -3102,14 +3102,7 @@ irc_command_server (void *data, struct t_gui_buffer *buffer, int argc,
}
}
}
irc_server_set_buffer_title (irc_current_server);
snprintf (charset_modifier, sizeof (charset_modifier),
"irc.%s", irc_current_server->name);
weechat_buffer_set (irc_current_server->buffer,
"localvar_set_charset_modifier",
charset_modifier);
weechat_bar_item_update ("buffer_name");
weechat_bar_item_update ("input_prompt");
irc_server_set_current_server (irc_current_server);
}
return WEECHAT_RC_OK;
}
+5
View File
@@ -2430,6 +2430,11 @@ irc_protocol_cmd_001 (struct t_irc_server *server, const char *command,
commands = weechat_string_split_command (ptr_command, ';');
if (commands)
{
if (weechat_config_boolean (irc_config_look_one_server_buffer)
&& (irc_current_server != server))
{
irc_server_set_current_server (server);
}
for (ptr_cmd = commands; *ptr_cmd; ptr_cmd++)
{
vars_replaced = irc_protocol_replace_vars (server, NULL,
+22
View File
@@ -1981,6 +1981,28 @@ irc_server_create_buffer (struct t_irc_server *server, int all_servers)
return server->buffer;
}
/*
* irc_server_set_current_server: set new current server (when all servers are
* in one buffer)
*/
void
irc_server_set_current_server (struct t_irc_server *server)
{
char charset_modifier[256];
irc_current_server = server;
irc_server_set_buffer_title (irc_current_server);
snprintf (charset_modifier, sizeof (charset_modifier),
"irc.%s", irc_current_server->name);
weechat_buffer_set (irc_current_server->buffer,
"localvar_set_charset_modifier",
charset_modifier);
weechat_bar_item_update ("buffer_name");
weechat_bar_item_update ("input_prompt");
}
/*
* irc_server_connect: connect to an IRC server
* Return: 1 if ok
+1
View File
@@ -192,6 +192,7 @@ extern struct t_irc_server *irc_server_search (const char *server_name);
extern void irc_server_set_buffer_title (struct t_irc_server *server);
extern struct t_gui_buffer *irc_server_create_buffer (struct t_irc_server *server,
int all_servers);
extern void irc_server_set_current_server (struct t_irc_server *server);
extern int irc_server_connect (struct t_irc_server *server,
int disable_autojoin);
extern void irc_server_auto_connect (int auto_connect);