mirror of
https://github.com/weechat/weechat.git
synced 2026-06-30 14:56:39 +02:00
relay: create buffers with function buffer_new_props (issue #1942)
With this function, buffer properties are set when the buffer is created and can be read immediately by other plugins/scripts, for example in a callback of signal "buffer_opened".
This commit is contained in:
@@ -245,20 +245,32 @@ relay_buffer_close_cb (const void *pointer, void *data,
|
||||
void
|
||||
relay_buffer_open ()
|
||||
{
|
||||
if (!relay_buffer)
|
||||
struct t_hashtable *buffer_props;
|
||||
|
||||
if (relay_buffer)
|
||||
return;
|
||||
|
||||
buffer_props = weechat_hashtable_new (
|
||||
32,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
if (buffer_props)
|
||||
{
|
||||
relay_buffer = weechat_buffer_new (RELAY_BUFFER_NAME,
|
||||
&relay_buffer_input_cb, NULL, NULL,
|
||||
&relay_buffer_close_cb, NULL, NULL);
|
||||
|
||||
/* failed to create buffer ? then exit */
|
||||
if (!relay_buffer)
|
||||
return;
|
||||
|
||||
weechat_buffer_set (relay_buffer, "type", "free");
|
||||
weechat_buffer_set (relay_buffer, "title", _("List of clients for relay"));
|
||||
weechat_buffer_set (relay_buffer, "key_bind_up", "/relay up");
|
||||
weechat_buffer_set (relay_buffer, "key_bind_down", "/relay down");
|
||||
weechat_buffer_set (relay_buffer, "localvar_set_type", "relay");
|
||||
weechat_hashtable_set (buffer_props, "type", "free");
|
||||
weechat_hashtable_set (buffer_props,
|
||||
"title", _("List of clients for relay"));
|
||||
weechat_hashtable_set (buffer_props, "key_bind_up", "/relay up");
|
||||
weechat_hashtable_set (buffer_props, "key_bind_down", "/relay down");
|
||||
weechat_hashtable_set (buffer_props, "localvar_set_type", "relay");
|
||||
}
|
||||
|
||||
relay_buffer = weechat_buffer_new_props (
|
||||
RELAY_BUFFER_NAME,
|
||||
buffer_props,
|
||||
&relay_buffer_input_cb, NULL, NULL,
|
||||
&relay_buffer_close_cb, NULL, NULL);
|
||||
|
||||
if (buffer_props)
|
||||
weechat_hashtable_free (buffer_props);
|
||||
}
|
||||
|
||||
@@ -65,6 +65,7 @@ void
|
||||
relay_raw_open (int switch_to_buffer)
|
||||
{
|
||||
struct t_relay_raw_message *ptr_raw_message;
|
||||
struct t_hashtable *buffer_props;
|
||||
|
||||
if (!relay_raw_buffer)
|
||||
{
|
||||
@@ -72,30 +73,43 @@ relay_raw_open (int switch_to_buffer)
|
||||
RELAY_RAW_BUFFER_NAME);
|
||||
if (!relay_raw_buffer)
|
||||
{
|
||||
relay_raw_buffer = weechat_buffer_new (
|
||||
buffer_props = weechat_hashtable_new (
|
||||
32,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
if (buffer_props)
|
||||
{
|
||||
weechat_hashtable_set (buffer_props,
|
||||
"title", _("Relay raw messages"));
|
||||
weechat_hashtable_set (buffer_props,
|
||||
"localvar_set_type", "debug");
|
||||
weechat_hashtable_set (buffer_props,
|
||||
"localvar_set_server", RELAY_RAW_BUFFER_NAME);
|
||||
weechat_hashtable_set (buffer_props,
|
||||
"localvar_set_channel", RELAY_RAW_BUFFER_NAME);
|
||||
weechat_hashtable_set (buffer_props,
|
||||
"localvar_set_no_log", "1");
|
||||
/* disable all highlights on this buffer */
|
||||
weechat_hashtable_set (buffer_props, "highlight_words", "-");
|
||||
}
|
||||
relay_raw_buffer = weechat_buffer_new_props (
|
||||
RELAY_RAW_BUFFER_NAME,
|
||||
buffer_props,
|
||||
&relay_buffer_input_cb, NULL, NULL,
|
||||
&relay_buffer_close_cb, NULL, NULL);
|
||||
if (buffer_props)
|
||||
weechat_hashtable_free (buffer_props);
|
||||
|
||||
/* failed to create buffer ? then return */
|
||||
if (!relay_raw_buffer)
|
||||
return;
|
||||
|
||||
weechat_buffer_set (relay_raw_buffer,
|
||||
"title", _("Relay raw messages"));
|
||||
|
||||
if (!weechat_buffer_get_integer (relay_raw_buffer, "short_name_is_set"))
|
||||
{
|
||||
weechat_buffer_set (relay_raw_buffer, "short_name",
|
||||
RELAY_RAW_BUFFER_NAME);
|
||||
}
|
||||
weechat_buffer_set (relay_raw_buffer, "localvar_set_type", "debug");
|
||||
weechat_buffer_set (relay_raw_buffer, "localvar_set_server", RELAY_RAW_BUFFER_NAME);
|
||||
weechat_buffer_set (relay_raw_buffer, "localvar_set_channel", RELAY_RAW_BUFFER_NAME);
|
||||
weechat_buffer_set (relay_raw_buffer, "localvar_set_no_log", "1");
|
||||
|
||||
/* disable all highlights on this buffer */
|
||||
weechat_buffer_set (relay_raw_buffer, "highlight_words", "-");
|
||||
|
||||
/* print messages in list */
|
||||
for (ptr_raw_message = relay_raw_messages; ptr_raw_message;
|
||||
|
||||
Reference in New Issue
Block a user