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

Fix /upgrade when there is one buffer for all IRC servers

This commit is contained in:
Sebastien Helleu
2008-09-24 19:39:17 +02:00
parent 0fd3f8b6eb
commit ace2d20e33
5 changed files with 95 additions and 9 deletions
+11
View File
@@ -2840,6 +2840,17 @@ irc_server_add_to_infolist (struct t_infolist *infolist,
if (!weechat_infolist_new_var_string (ptr_item, "name", server->name))
return 0;
if (!weechat_infolist_new_var_pointer (ptr_item, "buffer", server->buffer))
return 0;
if (!weechat_infolist_new_var_string (ptr_item, "buffer_name",
(server->buffer) ?
weechat_buffer_get_string (server->buffer, "name") : ""))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "selected",
(weechat_config_boolean (irc_config_look_one_server_buffer)
&& (irc_current_server != server)) ?
0 : 1))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "autoconnect", server->autoconnect))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "autoreconnect", server->autoreconnect))
+21 -3
View File
@@ -25,6 +25,7 @@
#include "irc.h"
#include "irc-upgrade.h"
#include "irc-buffer.h"
#include "irc-config.h"
#include "irc-input.h"
#include "irc-server.h"
#include "irc-channel.h"
@@ -168,8 +169,9 @@ irc_upgrade_read_cb (int object_id,
struct t_infolist *infolist)
{
int flags, sock, size;
char *str, *buf;
char *str, *buf, *buffer_name;
struct t_irc_nick *ptr_nick;
struct t_gui_buffer *ptr_buffer;
weechat_infolist_reset_item_cursor (infolist);
while (weechat_infolist_next (infolist))
@@ -180,8 +182,24 @@ irc_upgrade_read_cb (int object_id,
irc_upgrade_current_server = irc_server_search (weechat_infolist_string (infolist, "name"));
if (irc_upgrade_current_server)
{
irc_upgrade_current_server->buffer = weechat_buffer_search (IRC_PLUGIN_NAME,
irc_upgrade_current_server->name);
irc_upgrade_current_server->buffer = NULL;
buffer_name = weechat_infolist_string (infolist, "buffer_name");
if (buffer_name && buffer_name[0])
{
ptr_buffer = weechat_buffer_search (IRC_PLUGIN_NAME,
buffer_name);
if (ptr_buffer)
{
irc_upgrade_current_server->buffer = ptr_buffer;
if (weechat_config_boolean (irc_config_look_one_server_buffer)
&& !irc_buffer_servers)
{
irc_buffer_servers = ptr_buffer;
}
if (weechat_infolist_integer (infolist, "selected"))
irc_current_server = irc_upgrade_current_server;
}
}
irc_upgrade_current_server->current_address = weechat_infolist_integer (infolist, "current_address");
sock = weechat_infolist_integer (infolist, "sock");