From: Hans de Goede Date: Sat, 27 Mar 2021 12:07:32 +0000 (+0100) Subject: ply-logger: Add a ply_is_tracing_to_terminal () helper X-Git-Tag: 22.02.122~15^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ca869a3fff761ea014e87db63c631fb85d968d91;p=thirdparty%2Fplymouth.git ply-logger: Add a ply_is_tracing_to_terminal () helper Track if we are logging to the terminal (or to a file) and add a new ply_is_tracing_to_terminal () helper. This will be used in follow-up patches to replace some ply_is_tracing () checks for things which should only be done when tracing to a terminal (and not when tracing to a file). Signed-off-by: Hans de Goede --- diff --git a/src/libply/ply-logger.c b/src/libply/ply-logger.c index 03dd347f..749c9da5 100644 --- a/src/libply/ply-logger.c +++ b/src/libply/ply-logger.c @@ -61,6 +61,7 @@ typedef struct struct _ply_logger { int output_fd; + bool output_fd_is_terminal; char *filename; char *buffer; @@ -229,6 +230,7 @@ ply_logger_new (void) logger = calloc (1, sizeof(ply_logger_t)); logger->output_fd = -1; + logger->output_fd_is_terminal = false; logger->filename = NULL; logger->is_enabled = true; logger->tracing_is_enabled = false; @@ -363,6 +365,7 @@ ply_logger_set_output_fd (ply_logger_t *logger, assert (logger != NULL); logger->output_fd = fd; + logger->output_fd_is_terminal = isatty(fd); } int @@ -580,6 +583,15 @@ ply_logger_is_tracing_enabled (ply_logger_t *logger) return logger->tracing_is_enabled != false; } + +bool +ply_logger_is_tracing_to_terminal (ply_logger_t *logger) +{ + assert (logger != NULL); + + return logger->tracing_is_enabled && logger->output_fd_is_terminal; +} + #endif /* PLY_ENABLE_TRACING */ /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ diff --git a/src/libply/ply-logger.h b/src/libply/ply-logger.h index 0015c0cf..8d8ee871 100644 --- a/src/libply/ply-logger.h +++ b/src/libply/ply-logger.h @@ -81,6 +81,7 @@ ply_logger_t *ply_logger_get_error_default (void); #ifdef PLY_ENABLE_TRACING void ply_logger_toggle_tracing (ply_logger_t *logger); bool ply_logger_is_tracing_enabled (ply_logger_t *logger); +bool ply_logger_is_tracing_to_terminal (ply_logger_t *logger); #define ply_logger_trace(logger, format, args ...) \ do \ @@ -113,6 +114,7 @@ bool ply_logger_is_tracing_enabled (ply_logger_t *logger); #define ply_logger_trace(logger, format, args ...) #define ply_logger_toggle_tracing(logger) #define ply_logger_is_tracing_enabled(logger) (false) +#define ply_logger_is_tracing_to_terminal(logger) (false) #endif /* PLY_ENABLE_TRACING */ /* convenience macros @@ -140,6 +142,8 @@ bool ply_logger_is_tracing_enabled (ply_logger_t *logger); ply_logger_toggle_tracing (ply_logger_get_error_default ()) #define ply_is_tracing() \ ply_logger_is_tracing_enabled (ply_logger_get_error_default ()) +#define ply_is_tracing_to_terminal() \ + ply_logger_is_tracing_to_terminal (ply_logger_get_error_default ()) #define ply_trace(format, args ...) \ ply_logger_trace (ply_logger_get_error_default (), format, ## args)