]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
ply-terminal-emulator: Fix incorrect SGR attribute handling
authorTomita Moeko <tomitamoeko@gmail.com>
Wed, 7 May 2025 14:25:24 +0000 (22:25 +0800)
committerRay Strode <halfline@gmail.com>
Wed, 18 Jun 2025 15:14:25 +0000 (15:14 +0000)
According to ECMA-48 [1], Select Graphic Rendition (SGR) attribute 21
is for "doubly underlined", not "disabling bold" in current plymouth
implementation.

Additionally, SGR 22 is for "normal colour or normal intensity (neither
bold nor faint)", both bold and dim should be disabled with it.

[1] 8.3.117, https://www.ecma-international.org/wp-content/uploads/ECMA-48_5th_edition_june_1991.pdf

Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
src/libply-splash-core/ply-terminal-emulator.c
src/libply-splash-core/ply-terminal-emulator.h

index d4aebc951b23e92913df601218a11223d94d6f55..ad09186e958c7cadda93ddee9fda55295cc1d9ad 100644 (file)
@@ -822,13 +822,11 @@ on_control_sequence_set_attributes (ply_terminal_emulator_t *terminal_emulator,
                 case PLY_TERMINAL_ATTRIBUTE_BOLD:
                         terminal_emulator->current_style.bold_enabled = true;
                         break;
-                case PLY_TERMINAL_ATTRIBUTE_NO_BOLD:
-                        terminal_emulator->current_style.bold_enabled = false;
-                        break;
                 case PLY_TERMINAL_ATTRIBUTE_DIM:
                         terminal_emulator->current_style.dim_enabled = true;
                         break;
-                case PLY_TERMINAL_ATTRIBUTE_NO_DIM:
+                case PLY_TERMINAL_ATTRIBUTE_NO_BOLD_OR_DIM:
+                        terminal_emulator->current_style.bold_enabled = false;
                         terminal_emulator->current_style.dim_enabled = false;
                         break;
                 case PLY_TERMINAL_ATTRIBUTE_ITALIC:
index a189146def6cc5bd726a6e775e9a8c5f446054ba..4945b10ac4dea489b704d7ee0e092ee48fc9c2dd 100644 (file)
@@ -40,12 +40,11 @@ typedef enum
         PLY_TERMINAL_ATTRIBUTE_DIM,
         PLY_TERMINAL_ATTRIBUTE_ITALIC,
         PLY_TERMINAL_ATTRIBUTE_UNDERLINE,
-        PLY_TERMINAL_ATTRIBUTE_REVERSE    = 7,
-        PLY_TERMINAL_ATTRIBUTE_NO_BOLD    = 21,
-        PLY_TERMINAL_ATTRIBUTE_NO_DIM,
+        PLY_TERMINAL_ATTRIBUTE_REVERSE        = 7,
+        PLY_TERMINAL_ATTRIBUTE_NO_BOLD_OR_DIM = 22,
         PLY_TERMINAL_ATTRIBUTE_NO_ITALIC,
         PLY_TERMINAL_ATTRIBUTE_NO_UNDERLINE,
-        PLY_TERMINAL_ATTRIBUTE_NO_REVERSE = 27
+        PLY_TERMINAL_ATTRIBUTE_NO_REVERSE     = 27
 } ply_terminal_style_attributes_t;
 
 typedef void (*ply_terminal_emulator_output_handler_t) (void       *user_data,