diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2025-12-08 21:00:04 -0800 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2025-12-23 22:15:08 -0800 |
| commit | bee8005fe6817ade9191de0493888b14cdbcac31 (patch) | |
| tree | 6001bd45ab1118e92a77fe6ebfbf6b332d371a2b /lib/std/Io/File/Writer.zig | |
| parent | 4a53e5b0b4131c6b8e18bb551e8215e425f8ac71 (diff) | |
| download | zig-bee8005fe6817ade9191de0493888b14cdbcac31.tar.gz zig-bee8005fe6817ade9191de0493888b14cdbcac31.zip | |
std.heap.DebugAllocator: never detect TTY config
instead, allow the user to set it as a field.
this fixes a bug where leak printing and error printing would run tty
config detection for stderr, and then emit a log, which is not necessary
going to print to stderr.
however, the nice defaults are gone; the user must explicitly assign the
tty_config field during initialization or else the logging will not have
color.
related: https://github.com/ziglang/zig/issues/24510
Diffstat (limited to 'lib/std/Io/File/Writer.zig')
| -rw-r--r-- | lib/std/Io/File/Writer.zig | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/std/Io/File/Writer.zig b/lib/std/Io/File/Writer.zig index d8c30ddbef..cc971edbf4 100644 --- a/lib/std/Io/File/Writer.zig +++ b/lib/std/Io/File/Writer.zig @@ -158,7 +158,7 @@ pub fn sendFile(io_w: *Io.Writer, file_reader: *Io.File.Reader, limit: Io.Limit) fn sendFilePositional(w: *Writer, file_reader: *Io.File.Reader, limit: Io.Limit) Io.Writer.FileError!usize { const io = w.io; const header = w.interface.buffered(); - const n = io.vtable.fileSendFilePositional(io.userdata, w.file, header, file_reader, limit, w.pos) catch |err| switch (err) { + const n = io.vtable.fileWriteFilePositional(io.userdata, w.file, header, file_reader, limit, w.pos) catch |err| switch (err) { error.Unseekable => { w.mode = w.mode.toStreaming(); const pos = w.pos; @@ -187,7 +187,7 @@ fn sendFilePositional(w: *Writer, file_reader: *Io.File.Reader, limit: Io.Limit) fn sendFileStreaming(w: *Writer, file_reader: *Io.File.Reader, limit: Io.Limit) Io.Writer.FileError!usize { const io = w.io; const header = w.interface.buffered(); - const n = io.vtable.fileSendFileStreaming(io.userdata, w.file, header, file_reader, limit) catch |err| switch (err) { + const n = io.vtable.fileWriteFileStreaming(io.userdata, w.file, header, file_reader, limit) catch |err| switch (err) { error.Canceled => { w.err = error.Canceled; return error.WriteFailed; @@ -226,7 +226,7 @@ pub fn seekToUnbuffered(w: *Writer, offset: u64) SeekError!void { } } -pub const EndError = File.SetEndPosError || Io.Writer.Error; +pub const EndError = File.SetLengthError || Io.Writer.Error; /// Flushes any buffered data and sets the end position of the file. /// @@ -236,11 +236,12 @@ pub const EndError = File.SetEndPosError || Io.Writer.Error; /// Flush failure is handled by setting `err` so that it can be handled /// along with other write failures. pub fn end(w: *Writer) EndError!void { + const io = w.io; try w.interface.flush(); switch (w.mode) { .positional, .positional_reading, - => w.file.setLength(w.pos) catch |err| switch (err) { + => w.file.setLength(io, w.pos) catch |err| switch (err) { error.NonResizable => return, else => |e| return e, }, |
