1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-04 00:33:13 +02:00

core, plugins: force "short_name" in buffers to non-empty value (name by default), remove buffer property "short_name_is_set"

This commit is contained in:
Sébastien Helleu
2024-06-18 18:26:33 +02:00
parent eb83e8d018
commit 1fcf5ac5b3
20 changed files with 92 additions and 132 deletions
+2 -20
View File
@@ -190,7 +190,6 @@ irc_channel_create_buffer (struct t_irc_server *server,
int buffer_created, current_buffer_number, buffer_position;
int autojoin_join, manual_join, noswitch;
char str_number[32], *channel_name_lower, *buffer_name, *prompt;
const char *short_name, *localvar_channel;
buffer_created = 0;
buffer_props = NULL;
@@ -218,6 +217,7 @@ irc_channel_create_buffer (struct t_irc_server *server,
NULL, NULL);
if (buffer_props)
{
weechat_hashtable_set (buffer_props, "short_name", channel_name);
weechat_hashtable_set (
buffer_props,
"input_multiline",
@@ -251,6 +251,7 @@ irc_channel_create_buffer (struct t_irc_server *server,
{
if (!irc_upgrading)
weechat_nicklist_remove_all (ptr_buffer);
weechat_hashtable_remove (buffer_props, "short_name");
weechat_hashtable_map (buffer_props, &irc_channel_apply_props, ptr_buffer);
}
else
@@ -312,25 +313,6 @@ irc_channel_create_buffer (struct t_irc_server *server,
buffer_created = 1;
}
if (buffer_created)
{
if (!weechat_buffer_get_integer (ptr_buffer, "short_name_is_set"))
weechat_buffer_set (ptr_buffer, "short_name", channel_name);
}
else
{
short_name = weechat_buffer_get_string (ptr_buffer, "short_name");
localvar_channel = weechat_buffer_get_string (ptr_buffer,
"localvar_channel");
if (!short_name
|| (localvar_channel
&& (strcmp (localvar_channel, short_name) == 0)))
{
/* update the short_name only if it was not changed by the user */
weechat_buffer_set (ptr_buffer, "short_name", channel_name);
}
}
if (buffer_created)
{
(void) weechat_hook_signal_send ("logger_backlog",
+2 -6
View File
@@ -390,6 +390,8 @@ irc_raw_open (int switch_to_buffer)
NULL, NULL);
if (buffer_props)
{
weechat_hashtable_set (buffer_props,
"short_name", IRC_RAW_BUFFER_NAME);
weechat_hashtable_set (buffer_props,
"localvar_set_type", "debug");
weechat_hashtable_set (buffer_props,
@@ -412,12 +414,6 @@ irc_raw_open (int switch_to_buffer)
if (!irc_raw_buffer)
return;
if (!weechat_buffer_get_integer (irc_raw_buffer, "short_name_is_set"))
{
weechat_buffer_set (irc_raw_buffer, "short_name",
IRC_RAW_BUFFER_NAME);
}
irc_raw_set_localvar_filter ();
irc_raw_refresh (0);
+1 -3
View File
@@ -4804,6 +4804,7 @@ irc_server_create_buffer (struct t_irc_server *server)
NULL, NULL);
if (buffer_props)
{
weechat_hashtable_set (buffer_props, "short_name", server->name);
weechat_hashtable_set (buffer_props, "localvar_set_type", "server");
weechat_hashtable_set (buffer_props,
"localvar_set_server", server->name);
@@ -4833,9 +4834,6 @@ irc_server_create_buffer (struct t_irc_server *server)
if (!server->buffer)
return NULL;
if (!weechat_buffer_get_integer (server->buffer, "short_name_is_set"))
weechat_buffer_set (server->buffer, "short_name", server->name);
(void) weechat_hook_signal_send ("logger_backlog",
WEECHAT_HOOK_SIGNAL_POINTER,
server->buffer);
+2 -6
View File
@@ -83,6 +83,8 @@ relay_raw_open (int switch_to_buffer)
NULL, NULL);
if (buffer_props)
{
weechat_hashtable_set (buffer_props,
"short_name", RELAY_RAW_BUFFER_NAME);
weechat_hashtable_set (buffer_props,
"title", _("Relay raw messages"));
weechat_hashtable_set (buffer_props,
@@ -107,12 +109,6 @@ relay_raw_open (int switch_to_buffer)
if (!relay_raw_buffer)
return;
if (!weechat_buffer_get_integer (relay_raw_buffer, "short_name_is_set"))
{
weechat_buffer_set (relay_raw_buffer, "short_name",
RELAY_RAW_BUFFER_NAME);
}
/* print messages in list */
for (ptr_raw_message = relay_raw_messages; ptr_raw_message;
ptr_raw_message = ptr_raw_message->next_message)
+2 -3
View File
@@ -211,6 +211,8 @@ trigger_buffer_open (const char *filter, int switch_to_buffer)
NULL, NULL);
if (buffer_props)
{
weechat_hashtable_set (
buffer_props, "short_name", TRIGGER_BUFFER_NAME);
weechat_hashtable_set (
buffer_props, "localvar_set_type", "debug");
weechat_hashtable_set (
@@ -233,9 +235,6 @@ trigger_buffer_open (const char *filter, int switch_to_buffer)
/* failed to create buffer ? then return */
if (!trigger_buffer)
return;
if (!weechat_buffer_get_integer (trigger_buffer, "short_name_is_set"))
weechat_buffer_set (trigger_buffer, "short_name", TRIGGER_BUFFER_NAME);
}
if (filter && filter[0])
+56 -35
View File
@@ -335,6 +335,24 @@ xfer_chat_buffer_close_cb (const void *pointer, void *data,
return WEECHAT_RC_OK;
}
/*
* Applies properties to a buffer.
*/
void
xfer_chat_apply_props (void *data,
struct t_hashtable *hashtable,
const void *key,
const void *value)
{
/* make C compiler happy */
(void) hashtable;
weechat_buffer_set ((struct t_gui_buffer *)data,
(const char *)key,
(const char *)value);
}
/*
* Creates buffer for DCC chat.
*/
@@ -342,50 +360,51 @@ xfer_chat_buffer_close_cb (const void *pointer, void *data,
void
xfer_chat_open_buffer (struct t_xfer *xfer)
{
struct t_hashtable *buffer_props;
char *name;
int length, buffer_created;
buffer_created = 0;
buffer_props = NULL;
length = strlen (xfer->plugin_name) + 8 + strlen (xfer->plugin_id) + 1
+ strlen (xfer->remote_nick) + 1;
name = malloc (length);
if (!name)
return;
if (weechat_asprintf (&name, "%s_dcc.%s.%s",
xfer->plugin_name,
xfer->plugin_id,
xfer->remote_nick) < 0)
goto end;
snprintf (name, length, "%s_dcc.%s.%s",
xfer->plugin_name, xfer->plugin_id, xfer->remote_nick);
xfer->buffer = weechat_buffer_search (XFER_PLUGIN_NAME, name);
if (!xfer->buffer)
buffer_props = weechat_hashtable_new (
32,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL, NULL);
if (buffer_props)
{
xfer->buffer = weechat_buffer_new (
name,
&xfer_chat_buffer_input_cb, NULL, NULL,
&xfer_chat_buffer_close_cb, NULL, NULL);
buffer_created = 1;
/* failed to create buffer ? then return */
if (!xfer->buffer)
{
free (name);
return;
}
weechat_hashtable_set (buffer_props, "title", _("xfer chat"));
weechat_hashtable_set (buffer_props, "short_name", xfer->remote_nick);
weechat_hashtable_set (buffer_props, "input_prompt", xfer->local_nick);
weechat_hashtable_set (buffer_props, "localvar_set_type", "private");
weechat_hashtable_set (buffer_props, "localvar_set_nick", xfer->local_nick);
weechat_hashtable_set (buffer_props, "localvar_set_channel", xfer->remote_nick);
weechat_hashtable_set (buffer_props, "localvar_set_tls_version", "cleartext");
weechat_hashtable_set (buffer_props, "highlight_words_add", "$nick");
}
if (buffer_created)
xfer->buffer = weechat_buffer_search (XFER_PLUGIN_NAME, name);
if (xfer->buffer)
{
weechat_buffer_set (xfer->buffer, "title", _("xfer chat"));
if (!weechat_buffer_get_integer (xfer->buffer, "short_name_is_set"))
{
weechat_buffer_set (xfer->buffer, "short_name",
xfer->remote_nick);
}
weechat_buffer_set (xfer->buffer, "input_prompt", xfer->local_nick);
weechat_buffer_set (xfer->buffer, "localvar_set_type", "private");
weechat_buffer_set (xfer->buffer, "localvar_set_nick", xfer->local_nick);
weechat_buffer_set (xfer->buffer, "localvar_set_channel", xfer->remote_nick);
weechat_buffer_set (xfer->buffer, "localvar_set_tls_version", "cleartext");
weechat_buffer_set (xfer->buffer, "highlight_words_add", "$nick");
weechat_hashtable_remove (buffer_props, "short_name");
weechat_hashtable_remove (buffer_props, "highlight_words_add");
weechat_hashtable_map (buffer_props, &xfer_chat_apply_props, xfer->buffer);
}
else
{
xfer->buffer = weechat_buffer_new_props (
name,
buffer_props,
&xfer_chat_buffer_input_cb, NULL, NULL,
&xfer_chat_buffer_close_cb, NULL, NULL);
if (!xfer->buffer)
goto end;
}
weechat_printf (xfer->buffer,
@@ -395,5 +414,7 @@ xfer_chat_open_buffer (struct t_xfer *xfer)
xfer->remote_nick,
xfer->remote_address_str);
end:
weechat_hashtable_free (buffer_props);
free (name);
}