aboutsummaryrefslogtreecommitdiff
path: root/testes/utf8.lua
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-07-18 16:10:28 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-07-18 16:10:28 -0300
commitccb8b307f11c7497e61f617b12f3a7f0a697256c (patch)
tree91f6eb88650be03ab27433e2a3ee53f6d2dfcafd /testes/utf8.lua
parent60b6599e8322dd93e3b33c9496ff035a1c45552f (diff)
downloadlua-ccb8b307f11c7497e61f617b12f3a7f0a697256c.tar.gz
lua-ccb8b307f11c7497e61f617b12f3a7f0a697256c.tar.bz2
lua-ccb8b307f11c7497e61f617b12f3a7f0a697256c.zip
Correction in utf8.offset
Wrong utf-8 character may have no continuation bytes.
Diffstat (limited to 'testes/utf8.lua')
-rw-r--r--testes/utf8.lua9
1 files changed, 9 insertions, 0 deletions
diff --git a/testes/utf8.lua b/testes/utf8.lua
index 143c6d34..028995a4 100644
--- a/testes/utf8.lua
+++ b/testes/utf8.lua
@@ -152,11 +152,20 @@ checkerror("position out of bounds", utf8.offset, "", 1, -1)
152checkerror("continuation byte", utf8.offset, "𦧺", 1, 2) 152checkerror("continuation byte", utf8.offset, "𦧺", 1, 2)
153checkerror("continuation byte", utf8.offset, "𦧺", 1, 2) 153checkerror("continuation byte", utf8.offset, "𦧺", 1, 2)
154checkerror("continuation byte", utf8.offset, "\x80", 1) 154checkerror("continuation byte", utf8.offset, "\x80", 1)
155checkerror("continuation byte", utf8.offset, "\x9c", -1)
155 156
156-- error in indices for len 157-- error in indices for len
157checkerror("out of bounds", utf8.len, "abc", 0, 2) 158checkerror("out of bounds", utf8.len, "abc", 0, 2)
158checkerror("out of bounds", utf8.len, "abc", 1, 4) 159checkerror("out of bounds", utf8.len, "abc", 1, 4)
159 160
161do -- missing continuation bytes
162 -- get what is available
163 local p, e = utf8.offset("\xE0", 1)
164 assert(p == 1 and e == 1)
165 local p, e = utf8.offset("\xE0\x9e", -1)
166 assert(p == 1 and e == 2)
167end
168
160 169
161local s = "hello World" 170local s = "hello World"
162local t = {string.byte(s, 1, -1)} 171local t = {string.byte(s, 1, -1)}