motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit 6cdbf4223c14ca5d3adf7574efda6c6b66b37106 (tree)
parent f54f061fb38915908c4a9fb15153e72c455a4e0d
Author: Rohlem <rohlemF@gmail.com>
Date:   Tue, 19 Aug 2025 20:19:02 +0200

never advance seek position in `std.Io.Reader.peekDelimiterExclusive` (#24899)

* extend std.Io.Reader.peekDelimiterExclusive test to repeat successful end-of-stream path (fails)

* fix std.Io.Reader.peekDelimiterExclusive to not advance seek position in successful end-of-stream path
Diffstat:
Mlib/std/Io/Reader.zig | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/std/Io/Reader.zig b/lib/std/Io/Reader.zig @@ -836,7 +836,6 @@ pub fn peekDelimiterExclusive(r: *Reader, delimiter: u8) DelimiterError![]u8 { error.EndOfStream => { const remaining = r.buffer[r.seek..r.end]; if (remaining.len == 0) return error.EndOfStream; - r.toss(remaining.len); return remaining; }, else => |e| return e, @@ -1364,6 +1363,7 @@ test peekDelimiterExclusive { try testing.expectEqualStrings("ab", try r.peekDelimiterExclusive('\n')); r.toss(3); try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n')); + try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n')); } test streamDelimiter {