]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
ply-logger: Add a ply_is_tracing_to_terminal () helper
authorHans de Goede <hdegoede@redhat.com>
Sat, 27 Mar 2021 12:07:32 +0000 (13:07 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 29 Mar 2021 07:24:45 +0000 (09:24 +0200)
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 <hdegoede@redhat.com>
src/libply/ply-logger.c
src/libply/ply-logger.h

index 03dd347fd51f899f8a052b2ae102c7d04476661c..749c9da583f297fc20e72258cc7a1fb4111f5ad1 100644 (file)
@@ -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: */
index 0015c0cf6fc5153d446c294638848dc7dbd7f1a6..8d8ee87194445fbe8a9aa9fe1c8c70b759b5ffdf 100644 (file)
@@ -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)