1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-01 07:16:37 +02:00

relay, xfer: update hotlist only if items are actually removed when purging list on relay/xfer buffer

This commit is contained in:
Sébastien Helleu
2024-10-31 22:09:38 +01:00
parent 524c813485
commit 328fc3845e
2 changed files with 14 additions and 2 deletions
+7 -1
View File
@@ -174,6 +174,7 @@ relay_buffer_input_cb (const void *pointer, void *data,
{
struct t_relay_client *client, *ptr_client, *next_client;
const char *ptr_remote_name, *ptr_remote_id;
int refresh;
/* make C compiler happy */
(void) pointer;
@@ -200,15 +201,20 @@ relay_buffer_input_cb (const void *pointer, void *data,
/* purge old clients */
else if (weechat_strcmp (input_data, "p") == 0)
{
refresh = 0;
ptr_client = relay_clients;
while (ptr_client)
{
next_client = ptr_client->next_client;
if (RELAY_STATUS_HAS_ENDED(ptr_client->status))
{
relay_client_free (ptr_client);
refresh = 1;
}
ptr_client = next_client;
}
relay_buffer_refresh (WEECHAT_HOTLIST_MESSAGE);
if (refresh)
relay_buffer_refresh (WEECHAT_HOTLIST_MESSAGE);
}
/* quit relay buffer (close it) */
else if (weechat_strcmp (input_data, "q") == 0)
+7 -1
View File
@@ -261,6 +261,7 @@ xfer_buffer_input_cb (const void *pointer, void *data,
const char *input_data)
{
struct t_xfer *xfer, *ptr_xfer, *next_xfer;
int refresh;
/* make C compiler happy */
(void) pointer;
@@ -289,15 +290,20 @@ xfer_buffer_input_cb (const void *pointer, void *data,
/* purge old xfer */
else if (weechat_strcmp (input_data, "p") == 0)
{
refresh = 0;
ptr_xfer = xfer_list;
while (ptr_xfer)
{
next_xfer = ptr_xfer->next_xfer;
if (XFER_HAS_ENDED(ptr_xfer->status))
{
xfer_free (ptr_xfer);
refresh = 1;
}
ptr_xfer = next_xfer;
}
xfer_buffer_refresh (WEECHAT_HOTLIST_MESSAGE);
if (refresh)
xfer_buffer_refresh (WEECHAT_HOTLIST_MESSAGE);
}
/* quit xfer buffer (close it) */
else if (weechat_strcmp (input_data, "q") == 0)