diff options
author | Hans de Goede <jwrdegoede@fedoraproject.org> | 2021-03-29 07:40:32 +0000 |
---|---|---|
committer | Hans de Goede <jwrdegoede@fedoraproject.org> | 2021-03-29 07:40:32 +0000 |
commit | fbe2b79da56cf0a4b7ed5ca4754449ab4875b40f (patch) | |
tree | 5beaf3209e8691c3ec4d79b765cc1ddfbfc5af54 | |
parent | cf1ca1945cd6714755aea56855d53051d1af215e (diff) | |
parent | 0e59dde83afa2521bc548c587eaccbce1550bcfd (diff) |
Merge branch 'text-n-details-splash-fixes' into 'master'
Text and details splash fixes
See merge request plymouth/plymouth!137
-rw-r--r-- | src/libply-splash-core/ply-text-display.c | 4 | ||||
-rw-r--r-- | src/libply/ply-logger.c | 12 | ||||
-rw-r--r-- | src/libply/ply-logger.h | 4 | ||||
-rw-r--r-- | src/main.c | 2 | ||||
-rw-r--r-- | src/plugins/splash/details/plugin.c | 4 | ||||
-rw-r--r-- | src/plugins/splash/text/plugin.c | 3 | ||||
-rw-r--r-- | src/plugins/splash/tribar/plugin.c | 3 |
7 files changed, 24 insertions, 8 deletions
diff --git a/src/libply-splash-core/ply-text-display.c b/src/libply-splash-core/ply-text-display.c index 7bf6e06d..6eaea421 100644 --- a/src/libply-splash-core/ply-text-display.c +++ b/src/libply-splash-core/ply-text-display.c @@ -43,7 +43,7 @@ #include "ply-utils.h" #ifndef CLEAR_SCREEN_SEQUENCE -#define CLEAR_SCREEN_SEQUENCE "\033[2J" +#define CLEAR_SCREEN_SEQUENCE "\033[2J\033[3J" #endif #ifndef CLEAR_LINE_SEQUENCE @@ -150,7 +150,7 @@ ply_text_display_set_cursor_position (ply_text_display_t *display, void ply_text_display_clear_screen (ply_text_display_t *display) { - if (ply_is_tracing ()) + if (ply_is_tracing_to_terminal ()) return; ply_terminal_write (display->terminal, 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) @@ -1976,7 +1976,7 @@ initialize_environment (state_t *state) state->entry_buffer = ply_buffer_new (); state->messages = ply_list_new (); - if (!ply_is_tracing ()) + if (!ply_is_tracing_to_terminal ()) redirect_standard_io_to_dev_null (); ply_trace ("Making sure " PLYMOUTH_RUNTIME_DIR " exists"); diff --git a/src/plugins/splash/details/plugin.c b/src/plugins/splash/details/plugin.c index f534450b..254f682b 100644 --- a/src/plugins/splash/details/plugin.c +++ b/src/plugins/splash/details/plugin.c @@ -237,8 +237,10 @@ add_text_display (ply_boot_splash_plugin_t *plugin, view = view_new (plugin, display); terminal = ply_text_display_get_terminal (view->display); - if (ply_terminal_open (terminal)) + if (ply_terminal_open (terminal)) { + ply_text_display_clear_screen (view->display); ply_terminal_activate_vt (terminal); + } ply_list_append_data (plugin->views, view); diff --git a/src/plugins/splash/text/plugin.c b/src/plugins/splash/text/plugin.c index 7805b9e8..3fa01a77 100644 --- a/src/plugins/splash/text/plugin.c +++ b/src/plugins/splash/text/plugin.c @@ -233,11 +233,10 @@ view_hide (view_t *view) terminal = ply_text_display_get_terminal (view->display); + ply_terminal_reset_colors (terminal); ply_text_display_set_background_color (view->display, PLY_TERMINAL_COLOR_DEFAULT); ply_text_display_clear_screen (view->display); ply_text_display_show_cursor (view->display); - - ply_terminal_reset_colors (terminal); } } diff --git a/src/plugins/splash/tribar/plugin.c b/src/plugins/splash/tribar/plugin.c index 1778822a..7c33e184 100644 --- a/src/plugins/splash/tribar/plugin.c +++ b/src/plugins/splash/tribar/plugin.c @@ -239,11 +239,10 @@ view_hide (view_t *view) terminal = ply_text_display_get_terminal (view->display); + ply_terminal_reset_colors (terminal); ply_text_display_set_background_color (view->display, PLY_TERMINAL_COLOR_DEFAULT); ply_text_display_clear_screen (view->display); ply_text_display_show_cursor (view->display); - - ply_terminal_reset_colors (terminal); } } |