authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-01-12 00:27:10 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-01-12 00:27:10 -08:00
logd35b99f6018c3ccca853286087a7ef074d4be71b
tree1d11776f9db79984f27060e5fe337cd3f0df2bc2
parent3b6dc8daa25cb805bca40dc52faaf1ea7f5773f3

└─ run test 412/543 passed, 104 failed, 27 skipped


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

url.zig+3-4
......@@ -66,10 +66,10 @@ pub const URL = struct {
6666
6767 // 8.
6868 // codepoint index into inputl
69 var pointer: isize = 0;
69 var pointer: usize = 0;
7070 // byte index into inputl
7171 // moved at the same time as pointer
72 // if pointer is -1, i must not be read
72 // if pointer is > length, i must not be read
7373 var i: usize = 0;
7474 // inputl[i], must change in tandem with i
7575 var c: u8 = if (length > 0) inputl.items[i] else 0;
......@@ -1078,12 +1078,11 @@ fn endsInANumber(input: []const u8) bool {
10781078 // > This is equivalent to checking that last is "0X" or "0x", followed by zero or more ASCII hex digits.
10791079 // 6. Return false.
10801080
1081 _ = std.mem.splitBackwardsScalar;
10821081 var end = input.len;
10831082 var start: usize = if (std.mem.lastIndexOfScalar(u8, input[0..end], '.')) |i| i + 1 else 0;
10841083 if (end - start == 0) {
10851084 if (std.mem.count(u8, input, ".") == 0) return false;
1086 end = start;
1085 end = start - 1;
10871086 start = if (std.mem.lastIndexOfScalar(u8, input[0..end], '.')) |i| i + 1 else 0;
10881087 }
10891088 const last = input[start..end];