Fix CHARLEN and CHARSUB on invalid UTF-8 (#1630)

This commit is contained in:
Rangi authored and GitHub committed 2025-01-28 02:01:18 -05:00
1 parent d54619a453
commit 44caffe04a
4 files changed
+45 -16

No files matched your search

+9 -5
View File
@@ -29,9 +29,13 @@ println "\"{mid2}{mid1}\""
; 4: invalid byte 0x81
; 5: invalid byte 0xFF
; 6: U+0020 space
; 7: U+0042 B
REDEF invalid EQUS "A þ�ÿ B"
; 7: U+6F22 kanji (0xE6 0xBC 0xA2)
REDEF invalid EQUS "A þ�ÿ æ¼¢"
DEF n = strlen("{invalid}")
DEF r = charlen("{invalid}")
println "\"{#s:invalid}\": {d:n} != {d:r}"
DEF n = STRLEN("{invalid}")
DEF r = CHARLEN("{invalid}")
println "\"{#s:invalid}\": {d:n} == {d:r}"
REDEF mid1 EQUS CHARSUB("{invalid}", 4)
REDEF mid2 EQUS CHARSUB("{invalid}", 7)
println "\"{mid2}{mid1}\""
+27 -1
View File
@@ -50,4 +50,30 @@ error: invalid-utf-8-strings.asm(35):
STRLEN: Invalid UTF-8 byte 0xFF
error: invalid-utf-8-strings.asm(36):
Input string is not valid UTF-8
error: Assembly aborted (26 errors)!
error: invalid-utf-8-strings.asm(36):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(36):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(39):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(39):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(39):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(39):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(39):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(40):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(40):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(40):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(40):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(40):
Input string is not valid UTF-8
error: invalid-utf-8-strings.asm(40):
Input string is not valid UTF-8
error: Assembly aborted (39 errors)!
+2 -1
View File
@@ -1,3 +1,4 @@
"aäbæ¼¢,a£¤bæð¢!" == "aäbæ¼¢,a£¤bæð¢!" (12)
"b,a"
"A þ�ÿ B": 7 != 2
"A þ�ÿ æ¼¢": 7 == 7
"漢�"