]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
two-step: Remove ':' at the end of (passphrase) prompt below text entry field
authorHans de Goede <hansg@kernel.org>
Thu, 3 Jul 2025 10:23:57 +0000 (12:23 +0200)
committerHans de Goede <hansg@kernel.org>
Mon, 14 Jul 2025 08:46:34 +0000 (10:46 +0200)
When asked for e.g. a disk unlock passphrase, plymouth will be passed
a prompt like: "Please enter passphrase for disk $DISK:" the ':' in
the end makes sense when asking for this a text console, but this makes
less sense in the two-step disk unlock screen where the text is below
the passphrase entry field.

Strip any ':' char at the prompt's end on two-step's disk unlock screen.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=2356893
Signed-off-by: Hans de Goede <hansg@kernel.org>
src/plugins/splash/two-step/plugin.c

index 65789bed780da631bf1a309101cdf477f45a606d..01868173fa596d5577e3435cd91a7b6ce2d1a83b 100644 (file)
@@ -998,8 +998,8 @@ view_show_prompt (view_t     *view,
         unsigned long screen_width, screen_height, entry_width, entry_height;
         unsigned long keyboard_indicator_width, keyboard_indicator_height;
         bool show_keyboard_indicators = false;
+        int x, y, prompt_len;
         long dialog_bottom;
-        int x, y;
 
         assert (view != NULL);
 
@@ -1053,7 +1053,17 @@ view_show_prompt (view_t     *view,
 
         dialog_bottom = view->dialog_area.y + view->dialog_area.height;
 
-        if (prompt != NULL) {
+        if (prompt != NULL && prompt[0]) {
+                char buf[128];
+
+                /* Strip ':' at end of prompt since we show it below the text-entry */
+                prompt_len = strlen (prompt);
+                if (prompt[prompt_len - 1] == ':' && prompt_len < sizeof(buf)) {
+                        strcpy (buf, prompt);
+                        buf[prompt_len - 1] = 0;
+                        prompt = buf;
+                }
+
                 ply_label_set_text (view->label, prompt);
 
                 /* We center the prompt in the middle and use 80% of the horizontal space */