fix: last RV11 gaps - bench enum args, theme NUL paths, Zig error names
Resolves the 3 remaining gaps in docs/rewrite/notes/review-rv11-codex.md (final-Z14.md): - ghostty-bench validates every occurrence of enum options in order (Args::take_enum; empty value resets) like cli/args.zig, so `--mode=bad --mode=noop` fails as in Zig. - Theme paths with an interior NUL open the prefix like Zig's C-string path handling (verified against /usr/bin/ghostty). - Filesystem diagnostics print Zig's error names (error.FileNotFound, NotDir, AccessDenied, IsDir, NameTooLong, SymLinkLoop, ...) via a shared ghostty_os::zig_error mapping used by theme/path/config-file/ file_load/edit-config/list-themes; messages match the oracle. Test Plan: - cargo test --workspace --no-fail-fast - just check-macos (both), just check-windows, just check-wasm
This commit is contained in:
1 parent
ce9373aa7a
commit
f9b333545a
12 files changed
+215
-89
No files matched your search
@@ -170,15 +170,20 @@ pub fn open(path: &EncodedOs) -> Result<File, OpenFileError> {
|
||||
OpenFileError::FileNotFound
|
||||
} else {
|
||||
log::warn!(
|
||||
"unexpected file open error path={} err={err}",
|
||||
real.display()
|
||||
"unexpected file open error path={} err={}",
|
||||
real.display(),
|
||||
ghostty_os::zig_error::io_error_name(&err)
|
||||
);
|
||||
OpenFileError::FileOpenFailed
|
||||
}
|
||||
})?;
|
||||
|
||||
let meta = file.metadata().map_err(|err| {
|
||||
log::warn!("error getting file stat path={} err={err}", real.display());
|
||||
log::warn!(
|
||||
"error getting file stat path={} err={}",
|
||||
real.display(),
|
||||
ghostty_os::zig_error::io_error_name(&err)
|
||||
);
|
||||
OpenFileError::FileOpenFailed
|
||||
})?;
|
||||
if !meta.is_file() {
|
||||
|
||||
Reference in new issue
Block a user