diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2014-05-29 16:49:50 +0200 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2014-05-29 16:49:50 +0200 |
commit | bb779271ae052726551f8d59b014ed609386c06e (patch) | |
tree | 1fb20609379f83e778b475e667cbf38fc3bdba02 /src | |
parent | fe872f26d4b62c09dd017094492f3b2712e1a0f2 (diff) | |
download | weechat-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.c | 20 |
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" */ |