1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-09 03:03:12 +02:00

Log server/channel/private to file

This commit is contained in:
Sebastien Helleu
2004-09-19 20:26:15 +00:00
parent 0f718bf2c0
commit ce7f24ecc1
28 changed files with 1026 additions and 594 deletions
+7 -2
View File
@@ -36,6 +36,7 @@
#include "../gui.h"
#include "../../common/weeconfig.h"
#include "../../common/hotlist.h"
#include "../../common/log.h"
#include "../../irc/irc.h"
@@ -1409,7 +1410,7 @@ gui_get_dcc_buffer ()
/* check if dcc buffer exists */
for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer)
{
if (BUFFER_IS_DCC (ptr_buffer))
if (ptr_buffer->dcc)
break;
}
if (ptr_buffer)
@@ -1433,7 +1434,7 @@ gui_switch_to_dcc_buffer ()
/* check if dcc buffer exists */
for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer)
{
if (BUFFER_IS_DCC (ptr_buffer))
if (ptr_buffer->dcc)
break;
}
if (ptr_buffer)
@@ -2032,8 +2033,12 @@ gui_printf_color_type (t_gui_buffer *buffer, int type, int color, char *message,
snprintf (timestamp, 16, "%02d", date_tmp->tm_sec);
gui_add_message (buffer, MSG_TYPE_TIME, COLOR_WIN_CHAT_TIME, timestamp);
gui_add_message (buffer, MSG_TYPE_TIME, COLOR_WIN_CHAT_DARK, "] ");
if (buffer->log_file)
log_write_date (buffer);
}
gui_add_message (buffer, type, color, pos + 1);
if (buffer->log_file)
log_write (buffer, pos + 1);
pos = strchr (pos + 1, '\n');
if (pos && !pos[1])
pos = NULL;
+16
View File
@@ -36,6 +36,7 @@
#include "gui.h"
#include "../common/weeconfig.h"
#include "../common/hotlist.h"
#include "../common/log.h"
#include "../irc/irc.h"
@@ -146,6 +147,8 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int dcc,
((t_irc_channel *)(channel))->buffer = gui_buffers;
SERVER(gui_buffers) = server;
CHANNEL(gui_buffers) = channel;
if (cfg_log_auto_server)
log_start (gui_buffers);
return gui_buffers;
}
@@ -179,6 +182,14 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int dcc,
new_buffer->num_lines = 0;
new_buffer->line_complete = 1;
/* create/append to log file */
new_buffer->log_filename = NULL;
new_buffer->log_file = NULL;
if ((cfg_log_auto_server && BUFFER_IS_SERVER(new_buffer))
|| (cfg_log_auto_channel && BUFFER_IS_CHANNEL(new_buffer))
|| (cfg_log_auto_private && BUFFER_IS_PRIVATE(new_buffer)))
log_start (new_buffer);
/* init input buffer */
new_buffer->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE;
new_buffer->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE);
@@ -390,6 +401,11 @@ gui_buffer_free (t_gui_buffer *buffer, int switch_to_another)
gui_line_free (buffer->lines);
buffer->lines = ptr_line;
}
/* close log if opened */
if (buffer->log_file)
log_end (buffer);
if (buffer->input_buffer)
free (buffer->input_buffer);
+4 -3
View File
@@ -73,7 +73,6 @@
#define BUFFER_IS_SERVER(buffer) (SERVER(buffer) && !CHANNEL(buffer))
#define BUFFER_IS_CHANNEL(buffer) (CHANNEL(buffer) && (CHANNEL(buffer)->type == CHAT_CHANNEL))
#define BUFFER_IS_PRIVATE(buffer) (CHANNEL(buffer) && (CHANNEL(buffer)->type == CHAT_PRIVATE))
#define BUFFER_IS_DCC(buffer) (!SERVER(buffer) && !CHANNEL(buffer))
#define MSG_TYPE_TIME 1
#define MSG_TYPE_NICK 2
@@ -143,8 +142,6 @@ struct t_gui_buffer
/* server/channel */
void *server; /* buffer's server */
void *channel; /* buffer's channel */
/* dcc buffer */
int dcc; /* buffer is dcc status */
/* chat content (lines, line is composed by many messages) */
@@ -153,6 +150,10 @@ struct t_gui_buffer
int num_lines; /* number of lines in the window */
int line_complete; /* current line complete ? (\n ending) */
/* file to save buffer content */
char *log_filename; /* filename for saving buffer content */
FILE *log_file; /* for logging buffer to file */
/* inupt buffer */
char *input_buffer; /* input buffer */
int input_buffer_alloc; /* input buffer: allocated size in mem */