1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-30 14:56:39 +02:00

relay: don't send signals "buffer_clear" and "buffer_line_added" for relay raw/list buffers to clients (weechat protocol)

This commit is contained in:
Sébastien Helleu
2014-05-29 16:49:50 +02:00
parent fe872f26d4
commit bb779271ae
@@ -29,11 +29,27 @@
#include "relay-weechat-protocol.h"
#include "relay-weechat-msg.h"
#include "relay-weechat-nicklist.h"
#include "../relay-buffer.h"
#include "../relay-client.h"
#include "../relay-config.h"
#include "../relay-raw.h"
/*
* Checks if the buffer pointer is a relay buffer (relay raw/list).
*
* Returns:
* 1: buffer is a relay buffer (raw/list)
* 0: buffer is NOT a relay buffer
*/
int
relay_weechat_is_relay_buffer (struct t_gui_buffer *buffer)
{
return ((relay_raw_buffer && (buffer == relay_raw_buffer))
|| (relay_buffer && (buffer == relay_buffer))) ? 1 : 0;
}
/*
* Gets buffer pointer with argument from a command.
*
@@ -626,7 +642,7 @@ relay_weechat_protocol_signal_buffer_cb (void *data, const char *signal,
else if (strcmp (signal, "buffer_cleared") == 0)
{
ptr_buffer = (struct t_gui_buffer *)signal_data;
if (!ptr_buffer)
if (!ptr_buffer || relay_weechat_is_relay_buffer (ptr_buffer))
return WEECHAT_RC_OK;
/* send signal only if sync with flag "buffer" */
@@ -687,7 +703,7 @@ relay_weechat_protocol_signal_buffer_cb (void *data, const char *signal,
ptr_buffer = weechat_hdata_pointer (ptr_hdata_line_data, ptr_line_data,
"buffer");
if (!ptr_buffer || (relay_raw_buffer && (ptr_buffer == relay_raw_buffer)))
if (!ptr_buffer || relay_weechat_is_relay_buffer (ptr_buffer))
return WEECHAT_RC_OK;
/* send signal only if sync with flag "buffer" */