Skip to content

0.2.125

Choose a tag to compare

@dfallman dfallman released this 17 May 05:48
· 22 commits to master since this release

Bug fixes

  • Fix tab-character rendering corruption (#raster). A tab in the buffer used to land in the grid as a literal '\t' when show_whitespace=false, and Print('\t') to the terminal was interpreted as the C0 TAB control character — moving the cursor to the next tab stop and bypassing our cell-by-cell positioning. The result was ghosted/shifted cells, missing line numbers, and parts of previous rows leaking into new rows on every tab-indented file. Tabs now substitute to a plain space in the grid; the existing tab-expansion path still fills the full tab_width run.
  • Atomic frame writes. ScreenBuffer::diff assembles the entire frame in a local buffer and emits it with a single write_all. Previously a large repaint (e.g. 100x30 with RGB syntax colours, ~190 KB) overflowed the 64 KB BufWriter mid-frame and auto-flushed, sending partial frames to the terminal between renders.

Diagnostics

  • DAN_RENDER_LOG=/path/to/file env var dumps each frame's grid and raw ANSI bytes to a file for repro/debugging.