summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2014-05-29 16:49:50 +0200
committerSébastien Helleu <flashcode@flashtux.org>2014-05-29 16:49:50 +0200
commitbb779271ae052726551f8d59b014ed609386c06e (patch)
tree1fb20609379f83e778b475e667cbf38fc3bdba02 /src
parentfe872f26d4b62c09dd017094492f3b2712e1a0f2 (diff)
downloadweechat-bb779271ae052726551f8d59b014ed609386c06e.zip
relay: don't send signals "buffer_clear" and "buffer_line_added" for relay raw/list buffers to clients (weechat protocol)
Diffstat (limited to 'src')
-rw-r--r--src/plugins/relay/weechat/relay-weechat-protocol.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/plugins/relay/weechat/relay-weechat-protocol.c b/src/plugins/relay/weechat/relay-weechat-protocol.c
index 863a9b018..dc553cd8d 100644
--- a/src/plugins/relay/weechat/relay-weechat-protocol.c
+++ b/src/plugins/relay/weechat/relay-weechat-protocol.c
@@ -29,12 +29,28 @@
#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.
*
* The argument "arg" can be a pointer ("0x12345678") or a full name
@@ -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" */