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:
@@ -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",
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user