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

logger: add info "logger_log_file"

This commit is contained in:
Sébastien Helleu
2023-03-30 22:04:33 +02:00
parent 6a2ecc90b3
commit 672945a359
2 changed files with 63 additions and 0 deletions
+1
View File
@@ -38,6 +38,7 @@ New features::
* irc: add command `/knock` (issue #7)
* irc: add server option "registered_mode", add fields "authentication_method" and "sasl_mechanism_used" in server (issue #1625)
* irc: add option `join` in command `/autojoin`
* logger: add info "logger_log_file"
Bug fixes::
+62
View File
@@ -21,12 +21,64 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "../weechat-plugin.h"
#include "logger.h"
#include "logger-buffer.h"
/*
* Returns info "logger_log_file".
*/
char *
logger_info_log_file_cb (const void *pointer, void *data,
const char *info_name,
const char *arguments)
{
int rc;
unsigned long value;
struct t_gui_buffer *buffer;
struct t_logger_buffer *logger_buffer;
/* make C compiler happy */
(void) pointer;
(void) data;
(void) info_name;
if (!arguments)
return NULL;
buffer = NULL;
if (strncmp (arguments, "0x", 2) == 0)
{
rc = sscanf (arguments, "%lx", &value);
if ((rc != EOF) && (rc != 0) && value)
{
if (weechat_hdata_check_pointer (weechat_hdata_get ("buffer"),
NULL,
(struct t_gui_buffer *)value))
{
buffer = (struct t_gui_buffer *)value;
}
}
}
else
{
buffer = weechat_buffer_search ("==", arguments);
}
if (buffer)
{
logger_buffer = logger_buffer_search_buffer (buffer);
if (logger_buffer && logger_buffer->log_filename)
return strdup (logger_buffer->log_filename);
}
return NULL;
}
/*
* Returns logger infolist "logger_buffer".
*/
@@ -82,6 +134,7 @@ logger_info_infolist_logger_buffer_cb (const void *pointer, void *data,
return NULL;
}
/*
* Hooks infolist for logger plugin.
*/
@@ -89,6 +142,15 @@ logger_info_infolist_logger_buffer_cb (const void *pointer, void *data,
void
logger_info_init ()
{
/* info hooks */
weechat_hook_info (
"logger_log_file",
N_("path to current log filename for the buffer"),
N_("buffer pointer (\"0x12345678\") or buffer full name "
"(\"irc.libera.#weechat\")"),
&logger_info_log_file_cb, NULL, NULL);
/* infolist hooks */
weechat_hook_infolist (
"logger_buffer", N_("list of logger buffers"),
N_("logger pointer (optional)"),