From cb8b366d4e993dd33acbc6187ad8e03fd15e3981 Mon Sep 17 00:00:00 2001 From: armorbreak001 Date: Wed, 22 Apr 2026 23:12:25 +0800 Subject: [PATCH] fix(ansi): strip trailing CR alongside LF in AnsiDecoder.decode CRLF line endings left a bare \r after rstripping \n, which decode_line then consumed via rsplit('\\r', 1)[-1], yielding empty strings for every line. --- rich/ansi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rich/ansi.py b/rich/ansi.py index 7bbcb0bfcc..50091dbec7 100644 --- a/rich/ansi.py +++ b/rich/ansi.py @@ -133,7 +133,7 @@ def decode(self, terminal_text: str) -> Iterable[Text]: Text: Marked up Text. """ for line in re.split(r"(?<=\n)", terminal_text): - yield self.decode_line(line.rstrip("\n")) + yield self.decode_line(line.rstrip("\n\r")) def decode_line(self, line: str) -> Text: """Decode a line containing ansi codes.