1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-25 12:26:40 +02:00

Update highlight words for server and channel buffers when local nick is changed

This commit is contained in:
Sebastien Helleu
2009-01-04 14:53:22 +01:00
parent 46b16ecb89
commit 7fc3ca76c0
3 changed files with 45 additions and 1 deletions
+1
View File
@@ -215,6 +215,7 @@ irc_buffer_merge_servers ()
}
irc_server_set_buffer_title (irc_current_server);
irc_server_buffer_set_highlight_words (irc_buffer_servers);
}
}
+43 -1
View File
@@ -210,6 +210,44 @@ irc_server_set_nicks (struct t_irc_server *server, const char *nicks)
&server->nicks_count);
}
/*
* irc_server_buffer_set_highlight_words: set highlight words for buffer with
* all servers
*/
void
irc_server_buffer_set_highlight_words (struct t_gui_buffer *buffer)
{
struct t_irc_server *ptr_server;
int length;
char *words;
length = 0;
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if (ptr_server->is_connected && ptr_server->nick)
length += strlen (ptr_server->nick) + 1;
}
words = malloc (length + 1);
if (words)
{
words[0] = '\0';
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if (ptr_server->is_connected && ptr_server->nick)
{
if (words[0])
strcat (words, ",");
strcat (words, ptr_server->nick);
}
}
weechat_buffer_set (buffer, "highlight_words", words);
free (words);
}
}
/*
* irc_server_set_nick: set nickname for a server
*/
@@ -223,13 +261,17 @@ irc_server_set_nick (struct t_irc_server *server, const char *nick)
free (server->nick);
server->nick = (nick) ? strdup (nick) : NULL;
weechat_buffer_set (server->buffer, "highlight_words", nick);
if (weechat_config_boolean (irc_config_look_one_server_buffer))
irc_server_buffer_set_highlight_words (server->buffer);
else
weechat_buffer_set (server->buffer, "highlight_words", nick);
/* set local variable "nick" for server and all channels/pv */
weechat_buffer_set (server->buffer, "localvar_set_nick", nick);
for (ptr_channel = server->channels; ptr_channel;
ptr_channel = ptr_channel->next_channel)
{
weechat_buffer_set (ptr_channel->buffer, "highlight_words", server->nick);
weechat_buffer_set (ptr_channel->buffer, "localvar_set_nick", nick);
}
+1
View File
@@ -177,6 +177,7 @@ extern char *irc_server_get_name_without_port (const char *name);
extern void irc_server_set_addresses (struct t_irc_server *server,
const char *addresses);
extern void irc_server_set_nicks (struct t_irc_server *server, const char *nicks);
extern void irc_server_buffer_set_highlight_words (struct t_gui_buffer *buffer);
extern void irc_server_set_nick (struct t_irc_server *server, const char *nick);
extern struct t_irc_server *irc_server_alloc (const char *name);
extern int irc_server_alloc_with_url (const char *irc_url);