DarkPhilosophy
8fbd21ebf6
fix(tui): do not coalesce across incomplete extended-color SGR
...
A semicolon-form extended color with a missing component (e.g. 38;2;255;0
lacking blue, or 38;5 lacking the palette index) has ambiguous arity: if
a following SGR is concatenated onto it, the next code is absorbed as the
missing channel/index and the rendered color changes. Stop a merge run at
any parameter list that ends mid extended-color so the following sequence
keeps its original framing. Complete colors and the self-delimiting colon
form still merge, so the win is unchanged on real transcripts (34.3% SGR
reduction on the sampled capture). Adds regression tests for incomplete
truecolor/indexed runs and the complete-color merge.
2026-06-17 10:55:35 +03:00
..
2026-06-11 16:51:14 +02:00
2026-06-15 19:46:12 +02:00
2026-02-23 20:59:17 +01:00
2026-06-11 16:13:18 +02:00
2026-06-07 03:33:53 +02:00
2026-06-10 07:26:02 +02:00
2026-06-13 21:27:36 +02:00
2026-06-03 02:29:08 +00:00
2026-06-16 18:55:23 +08:00
2026-06-17 01:21:03 +02:00
2026-06-11 16:51:14 +02:00
2026-06-12 04:38:21 +02:00
2026-06-13 22:40:53 +02:00
2026-06-09 19:47:56 +02:00
2026-02-05 10:59:47 +01:00
2026-06-16 18:55:23 +08:00
2026-06-08 19:03:55 +02:00
2026-04-30 04:51:23 +02:00
2026-06-08 02:22:18 +02:00
2026-06-09 20:45:01 +02:00
2026-06-09 20:45:01 +02:00
2026-06-17 01:21:03 +02:00
2026-06-12 04:25:14 +02:00
2026-06-16 14:53:38 +02:00
2026-06-08 07:44:27 +00:00
2026-06-09 20:45:01 +02:00
2026-01-24 04:20:19 +01:00
2026-06-14 05:52:46 +09:00
2026-06-16 14:34:45 +02:00
2026-06-07 04:24:11 +02:00
2026-06-07 10:41:31 +00:00
2026-06-16 22:53:29 +02:00
2026-06-16 22:53:29 +02:00
2026-06-11 16:13:18 +02:00
2026-06-14 08:23:05 +09:00
2026-06-14 08:23:05 +09:00
2026-06-12 11:24:26 +02:00
2026-06-16 22:53:29 +02:00
2026-06-16 22:53:29 +02:00
2026-06-12 03:27:50 +02:00
2026-06-17 01:21:03 +02:00
2026-06-16 19:06:18 +00:00
2026-06-16 12:27:53 +08:00
2026-06-17 01:21:03 +02:00
2026-06-17 01:21:03 +02:00
2026-06-05 21:06:06 +02:00
2026-06-16 12:27:53 +08:00
2026-06-10 07:50:40 +02:00
2026-06-17 01:21:03 +02:00
2026-06-14 08:40:12 +09:00
2026-06-03 22:43:31 +02:00
2026-06-03 22:43:31 +02:00
2026-06-08 19:03:55 +02:00
2026-06-05 16:13:50 +02:00
2026-06-05 16:13:50 +02:00
2026-06-16 12:27:53 +08:00
2026-06-08 19:03:55 +02:00
2026-06-14 08:23:05 +09:00
2026-06-09 06:47:54 +00:00
2026-06-12 03:27:50 +02:00
2026-06-17 10:55:35 +03:00
2026-03-01 22:23:05 +01:00
2026-06-09 20:45:01 +02:00
2026-06-07 06:43:52 +02:00
2026-06-12 04:25:14 +02:00
2026-06-16 12:27:53 +08:00
2026-06-12 03:27:50 +02:00
2026-06-17 01:21:03 +02:00
2026-06-12 16:39:46 +00:00
2026-05-14 04:36:19 +02:00
2026-06-07 06:24:07 +02:00
2026-06-08 02:15:24 +02:00
2026-03-22 18:28:40 +01:00
2026-05-31 07:54:23 +02:00
2026-06-13 00:53:34 +08:00
2026-06-12 04:25:14 +02:00
2026-06-07 06:24:07 +02:00
2026-06-08 19:03:55 +02:00