Merge pull request #2804 from bytesiz3d/fix-unquote-string

Fix bug with index increment in `core:encoding/json.unquote_string`
This commit is contained in:
gingerBill
2023-09-20 10:16:51 +01:00
committed by GitHub
2 changed files with 9 additions and 1 deletions
+1 -1
View File
@@ -343,7 +343,7 @@ unquote_string :: proc(token: Token, spec: Specification, allocator := context.a
i += 1
continue
}
r, w := utf8.decode_rune_in_string(s)
r, w := utf8.decode_rune_in_string(s[i:])
if r == utf8.RUNE_ERROR && w == 1 {
break
}
@@ -33,6 +33,7 @@ main :: proc() {
marshal_json(&t)
unmarshal_json(&t)
surrogate(&t)
utf8_string_of_multibyte_characters(&t)
fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count)
if TEST_fail > 0 {
@@ -359,3 +360,10 @@ surrogate :: proc(t: ^testing.T) {
expect(t, uerr == nil, fmt.tprintf("Expected `json.unmarshal(%q)` to return a nil error, got %v", string(out), uerr))
expect(t, back == input, fmt.tprintf("Expected `json.unmarshal(%q)` to return %q, got %v", string(out), input, uerr))
}
@test
utf8_string_of_multibyte_characters :: proc(t: ^testing.T) {
_, err := json.parse_string(`"🐛✅"`)
msg := fmt.tprintf("Expected `json.parse` to return nil, got %v", err)
expect(t, err == nil, msg)
}