diff --git a/kitty/line.c b/kitty/line.c index 9895a3cd8..4bedc4f25 100644 --- a/kitty/line.c +++ b/kitty/line.c @@ -733,8 +733,7 @@ cell_as_sgr(const GPUCell *cell, const GPUCell *prev) { #define PA prev->attrs bool intensity_differs = CA.bold != PA.bold || CA.dim != PA.dim; if (intensity_differs) { - if (!CA.bold && !CA.dim) { P("22;"); } - else { if (CA.bold) P("1;"); if (CA.dim) P("2;"); } + P("22;"); if (CA.bold) P("1;"); if (CA.dim) P("2;"); } if (CA.italic != PA.italic) P(CA.italic ? "3;" : "23;"); if (CA.reverse != PA.reverse) P(CA.reverse ? "7;" : "27;"); diff --git a/kitty_tests/screen.py b/kitty_tests/screen.py index 541e56f65..e64bf89d9 100644 --- a/kitty_tests/screen.py +++ b/kitty_tests/screen.py @@ -603,6 +603,13 @@ class TestScreen(BaseTest): def test_serialize(self): from kitty.window import as_text s = self.create_screen() + parse_bytes(s, b'\x1b[1;91m') + s.draw('X') + parse_bytes(s, b'\x1b[0m\x1b[2m') + s.draw('Y') + self.ae(as_text(s, True), '\x1b[m\x1b[22;1;91mX\x1b[22;2;39mY\n\n\n\n') + + s.reset() s.draw('ab' * s.columns) s.carriage_return(), s.linefeed() s.draw('c')