summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <jwrdegoede@fedoraproject.org>2021-03-29 07:40:32 +0000
committerHans de Goede <jwrdegoede@fedoraproject.org>2021-03-29 07:40:32 +0000
commitfbe2b79da56cf0a4b7ed5ca4754449ab4875b40f (patch)
tree5beaf3209e8691c3ec4d79b765cc1ddfbfc5af54
parentcf1ca1945cd6714755aea56855d53051d1af215e (diff)
parent0e59dde83afa2521bc548c587eaccbce1550bcfd (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.c4
-rw-r--r--src/libply/ply-logger.c12
-rw-r--r--src/libply/ply-logger.h4
-rw-r--r--src/main.c2
-rw-r--r--src/plugins/splash/details/plugin.c4
-rw-r--r--src/plugins/splash/text/plugin.c3
-rw-r--r--src/plugins/splash/tribar/plugin.c3
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)
diff --git a/src/main.c b/src/main.c
index 0ad34fc4..122cb734 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);
}
}