add hook to log all terminal session output to a user supplied buffer

This commit is contained in:
Ray Strode 2008-05-19 18:33:54 -04:00
parent 3aca1c4370
commit b08048505b
3 changed files with 16 additions and 0 deletions

View file

@ -37,6 +37,7 @@
#include <termios.h>
#include <unistd.h>
#include "ply-buffer.h"
#include "ply-event-loop.h"
#include "ply-logger.h"
#include "ply-terminal.h"
@ -46,6 +47,7 @@ struct _ply_terminal_session
{
ply_terminal_t *terminal;
ply_logger_t *logger;
ply_buffer_t *output_buffer;
ply_event_loop_t *loop;
char **argv;
@ -322,6 +324,7 @@ ply_terminal_session_log_bytes (ply_terminal_session_t *session,
assert (number_of_bytes != 0);
ply_logger_inject_bytes (session->logger, bytes, number_of_bytes);
ply_buffer_append_bytes (session->output_buffer, bytes, number_of_bytes);
}
static void
@ -418,6 +421,14 @@ ply_terminal_session_close_log (ply_terminal_session_t *session)
return ply_logger_close_file (session->logger);
}
void
ply_terminal_session_set_output_buffer (ply_terminal_session_t *session,
ply_buffer_t *buffer)
{
assert (session != NULL);
session->output_buffer = buffer;
}
#ifdef PLY_TERMINAL_SESSION_ENABLE_TEST
#include <stdio.h>

View file

@ -27,6 +27,7 @@
#include <unistd.h>
#include "ply-event-loop.h"
#include "ply-buffer.h"
typedef struct _ply_terminal_session ply_terminal_session_t;
@ -60,6 +61,8 @@ int ply_terminal_session_get_fd (ply_terminal_session_t *session);
bool ply_terminal_session_open_log (ply_terminal_session_t *session,
const char *filename);
void ply_terminal_session_close_log (ply_terminal_session_t *session);
void ply_terminal_session_set_output_buffer (ply_terminal_session_t *session,
ply_buffer_t *buffer);
#endif
#endif /* PLY_TERMINAL_SESSION_H */

View file

@ -6,6 +6,8 @@ ply_terminal_session_test_LDADD = $(PLYMOUTH_LIBS)
ply_terminal_session_test_SOURCES = \
$(srcdir)/../ply-utils.h \
$(srcdir)/../ply-utils.c \
$(srcdir)/../ply-buffer.h \
$(srcdir)/../ply-buffer.c \
$(srcdir)/../ply-logger.h \
$(srcdir)/../ply-logger.c \
$(srcdir)/../ply-list.h \