authorgravatar for rohlemF@gmail.comRohlem <rohlemF@gmail.com> 2025-08-19 20:19:02+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-08-19 11:19:02-07:00
log81f5a7b8fd3a482de064ee1d14ffcd58d1857032
tree08d4ce8c1264888d3ee709f867c01ab89c32c0e9
parent07e7cfa35b9c11c4ab9c3447a5d3085def3a6d18
signaturebadge-check Signed by PGP key B5690EEEBB952194

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 {
836836 error.EndOfStream => {
837837 const remaining = r.buffer[r.seek..r.end];
838838 if (remaining.len == 0) return error.EndOfStream;
839 r.toss(remaining.len);
840839 return remaining;
841840 },
842841 else => |e| return e,
......@@ -1364,6 +1363,7 @@ test peekDelimiterExclusive {
13641363 try testing.expectEqualStrings("ab", try r.peekDelimiterExclusive('\n'));
13651364 r.toss(3);
13661365 try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n'));
1366 try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n'));
13671367}
13681368
13691369test streamDelimiter {