fix: silence embedded libghostty-vt logs

This commit is contained in:
Can Celik 2026-04-05 03:54:46 +03:00
parent 8525503dba
commit 26ec677193
3 changed files with 27 additions and 4 deletions

0
.codex Normal file
View File

View File

@ -45,6 +45,14 @@ class VendorLibghosttyVtTests(unittest.TestCase):
self.assertIn('"dist_archive"', text)
self.assertIn('"extracted_dir"', text)
def test_embedded_libghostty_logging_is_silenced(self) -> None:
root = Path(__file__).resolve().parent.parent / "vendor" / "libghostty-vt"
lib_vt = root / "src" / "lib_vt.zig"
text = lib_vt.read_text()
self.assertIn("fn silentLog(", text)
self.assertIn(".log_level = .err", text)
self.assertIn(".logFn = silentLog", text)
if __name__ == "__main__":
unittest.main()

View File

@ -242,6 +242,18 @@ comptime {
}
}
fn silentLog(
comptime level: std.log.Level,
comptime scope: @Type(.enum_literal),
comptime format: []const u8,
args: anytype,
) void {
_ = level;
_ = scope;
_ = format;
_ = args;
}
pub const std_options: std.Options = options: {
if (builtin.target.cpu.arch.isWasm()) break :options .{
// Wasm builds we specifically want to optimize for space with small
@ -256,10 +268,13 @@ pub const std_options: std.Options = options: {
.logFn = @import("os/wasm/log.zig").log,
};
// For everything else we currently use defaults. Longer term I'm
// SURE this isn't right (e.g. we definitely want to customize the log
// function for the C lib at least).
break :options .{};
// Embedded libghostty-vt runs inside herdr's TUI process. Writing logs to
// stdout/stderr corrupts the ratatui surface, so silence library-side Zig
// logging by default for the C library build.
break :options .{
.log_level = .err,
.logFn = silentLog,
};
};
test {