Files
kte/tests
Claude 7e16680a26 Terminal: draw control characters as ^X; bound GUI config values
- C0 controls and DEL were passed to ncurses, which acted on them: a
  carriage return moved to column 0 and the line padding then erased
  the text, so every line of a CRLF file drew blank, and a backspace
  ate the previous character. They are now drawn in caret notation
  (^M, ^H, ^?) and counted as two cells. C1 controls (and stray bytes
  0x80-0x9F, which decode to them; U+009B is CSI) are drawn as '?'.
- The width rule lives in TermWidth.h and is shared by the renderer's
  drawing loop, its cursor placement and the command layer's
  horizontal scrolling and mouse mapping, which also disagreed on NUL
  and invalid bytes.
- GUI config: columns/rows must be 1..1000 and the font size a finite
  4..200 (TOML 'size = inf' and huge values were accepted, leading to
  UB in float-to-int conversion and int overflow downstream).

Verified in tmux: a CRLF file now shows 'first line^M' where the
baseline showed a blank line.

Audit findings B9 (and the CR/BS case from the follow-up review).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015rcVQiiWyTzoNrsvLSaAfB
2026-09-24 09:16:04 -07:00
..
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-03-17 17:15:16 -07:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00
2026-02-17 13:44:36 -08:00