fix: URL opener and +show-face output match Ghostty, register fixes

Resolves the parity items of docs/rewrite/notes/review-rv15-codex.md
(final-Z18.md):
- os::open inherits stdin like Zig's Child.init, strips LD_LIBRARY_PATH
  only in Snap builds (new `snap` cargo feature, off by default, like
  Zig's snap build option) and bounds output collection to 50 KiB per
  stream (StdoutStreamTooLong/StderrStreamTooLong).
- +show-face writes diagnostics and lookup lines in the exact fragments
  Zig's formatter produces, so buffer drains happen at the same byte
  positions (0 diffs vs /usr/bin/ghostty over 0-44 bad options for
  three codepoints); its tests no longer parse the test runner's argv.
- DEVIANT_FIXES.md: five entries reworded and four removed that were no
  longer deviations (verified against code and oracle).

Test Plan:
- cargo test -p ghostty-os open; cargo test -p ghostty-cli show_face
This commit is contained in:
ddidderr committed 2026-10-12 15:37:24 +02:00
1 parent 0dffc62bdf
commit 465a85b6d5
6 files changed
+296 -53

No files matched your search

+3
View File
@@ -51,6 +51,9 @@ crossbeam-channel = "0.5.17"
[features]
# Mirrors Zig's `wasm_shared` build option (SharedArrayBuffer-backed memory).
wasm-shared = []
# Mirrors Zig's `snap` build option (`-Dsnap`, off by default): the URL
# opener drops `LD_LIBRARY_PATH` from the child environment.
snap = []
# Same as `[workspace.lints]` except `unsafe_code` is denied instead of
# forbidden: the wasm JS import blocks (`src/wasm`) need `unsafe`.