mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-09 10:38:27 +02:00
add hook to log all terminal session output to a user supplied buffer
This commit is contained in:
parent
3aca1c4370
commit
b08048505b
3 changed files with 16 additions and 0 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue