mirror of
https://github.com/weechat/weechat.git
synced 2026-06-29 14:26:39 +02:00
Catch signal "buffer_renamed" in logger plugin (restart logging for buffer when name has changed)
This commit is contained in:
@@ -655,6 +655,8 @@ irc_protocol_cmd_nick (struct t_irc_server *server, const char *command,
|
||||
free (ptr_channel->name);
|
||||
ptr_channel->name = strdup (new_nick);
|
||||
weechat_buffer_set (ptr_channel->buffer, "name", new_nick);
|
||||
weechat_buffer_set (ptr_channel->buffer,
|
||||
"localvar_set_channel", new_nick);
|
||||
}
|
||||
break;
|
||||
case IRC_CHANNEL_TYPE_CHANNEL:
|
||||
|
||||
@@ -720,6 +720,25 @@ logger_buffer_closing_signal_cb (void *data, const char *signal,
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* logger_buffer_renamed_signal_cb: callback for "buffer_closing" signal
|
||||
*/
|
||||
|
||||
int
|
||||
logger_buffer_renamed_signal_cb (void *data, const char *signal,
|
||||
const char *type_data, void *signal_data)
|
||||
{
|
||||
/* make C compiler happy */
|
||||
(void) data;
|
||||
(void) signal;
|
||||
(void) type_data;
|
||||
|
||||
logger_stop (logger_buffer_search_buffer (signal_data), 1);
|
||||
logger_start_buffer (signal_data);
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* logger_backlog: display backlog for a buffer (by reading end of log file)
|
||||
*/
|
||||
@@ -978,6 +997,7 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
||||
|
||||
weechat_hook_signal ("buffer_open", &logger_buffer_open_signal_cb, NULL);
|
||||
weechat_hook_signal ("buffer_closing", &logger_buffer_closing_signal_cb, NULL);
|
||||
weechat_hook_signal ("buffer_renamed", &logger_buffer_renamed_signal_cb, NULL);
|
||||
weechat_hook_signal ("logger_backlog", &logger_backlog_signal_cb, NULL);
|
||||
weechat_hook_signal ("logger_start", &logger_start_signal_cb, NULL);
|
||||
weechat_hook_signal ("logger_stop", &logger_stop_signal_cb, NULL);
|
||||
|
||||
Reference in New Issue
Block a user