Resolves the 7 gap groups in docs/rewrite/notes/review-rv6-codex.md (final-Z8.md): - crash (macOS): request_abort_dump returns false on mach_msg receive timeout/error so the signal-path fallback runs; EXC_SOFT_SIGNAL keeps the signal number in the minidump exception info. - Default SHELL read as an OS string and stored in encoded command form. - macOS executable search works on raw PATH bytes; the default path is used only when PATH is unset. - Windows: config env overrides are decoded; EnvMap compares keys as WTF-16 units with per-unit Unicode simple uppercasing (no lossy conversion, distinct lone-surrogate keys stay distinct). - +show-config writes original bytes for encoded OS data, so export + reload round-trips; UTF-8 configs are byte-identical as before. - Zig's ensureLocale chain lives in ghostty-os for all Unix targets and is used by both the GTK app and the C API init. Also makes the quick-terminal GTK replay test independent of compositor focus: GTK's is-active is read-only, so when niri actually focuses the layer surface the simulated focus-out cannot drive autohide and that assertion is skipped (the production logic is unchanged and matches Zig). Test Plan: - cargo test --workspace (3390 passed, incl. tests/gtk_replay.rs) - just check-macos (both), just check-windows, just check-wasm
1.5 KiB
1.5 KiB
Z8: RV6 remaining gap groups
- crash:
request_abort_dumpreturnsexception::abort_reply_ok(mach_msg rcv result); timeout/error falls back to the signal-path report.MachException::minidump_subcodekeeps the subcode for EXC_BAD_ACCESS and EXC_SOFTWARE/EXC_SOFT_SIGNAL (signal number). Tests inexception.rs(platform independent); mach glue checked byjust check-macos. - Default
SHELL:getenv_os+shell_from_env(EncodedOs encoding) inconfig.rs; testshell_from_env_round_trips_bytes. - macOS exec search:
exec_candidatesworks on bytes with the rawvar_os("PATH")bytes (default path only when PATH is unset); testsexec_candidates_*. - Windows env overrides:
apply_env_overridesdecodes keys/values (config_str_to_os);env_overrides_are_decoded(cfg(windows), compiled by check-windows). EnvMapon Windows compares keys as WTF-16 units upcased per unit (Unicode simple mapping, single BMP result only, surrogates unchanged);windows_key_testsrun everywhere.+show-configwritesconfig_str_to_bytes(formatted)(format_config_bytes) so raw bytes are emitted; UTF-8 output unchanged. Testshow_config_round_trips_non_utf8_and_fdd0_paths.- Locale: full
ensureLocalechain now inghostty-os/src/locale.rsposixmodule (all unix; libc dep moved to cfg(unix); cocoa step stays Apple-only). GTKinit_localenow delegates to it (unsafe removed there). Chain tested via a mockSystrait.core::global::init_libalready callsensure_locale, so the C API gets it.