authorgravatar for rohlemF@gmail.comRohlem <rohlemF@gmail.com> 2025-08-19 20:19:02+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-08-19 16:01:40-07:00
log6cdbf4223c14ca5d3adf7574efda6c6b66b37106
tree4a6cf1386136d6b03fddd0255ffdffd0aa8919e5
parentf54f061fb38915908c4a9fb15153e72c455a4e0d

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

1 files changed, 1 insertions(+), 1 deletions(-)

lib/std/Io/Reader.zig+1-1
...@@ -836,7 +836,6 @@ pub fn peekDelimiterExclusive(r: *Reader, delimiter: u8) DelimiterError![]u8 {...@@ -836,7 +836,6 @@ pub fn peekDelimiterExclusive(r: *Reader, delimiter: u8) DelimiterError![]u8 {
836 error.EndOfStream => {836 error.EndOfStream => {
837 const remaining = r.buffer[r.seek..r.end];837 const remaining = r.buffer[r.seek..r.end];
838 if (remaining.len == 0) return error.EndOfStream;838 if (remaining.len == 0) return error.EndOfStream;
839 r.toss(remaining.len);
840 return remaining;839 return remaining;
841 },840 },
842 else => |e| return e,841 else => |e| return e,
...@@ -1364,6 +1363,7 @@ test peekDelimiterExclusive {...@@ -1364,6 +1363,7 @@ test peekDelimiterExclusive {
1364 try testing.expectEqualStrings("ab", try r.peekDelimiterExclusive('\n'));1363 try testing.expectEqualStrings("ab", try r.peekDelimiterExclusive('\n'));
1365 r.toss(3);1364 r.toss(3);
1366 try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n'));1365 try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n'));
1366 try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n'));
1367}1367}
13681368
1369test streamDelimiter {1369test streamDelimiter {