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
This commit is contained in:
Rohlem 2025-08-19 20:19:02 +02:00 committed by Andrew Kelley
parent f54f061fb3
commit 6cdbf4223c

View File

@ -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 {