alexandro-rezakhani 2022-11-20 00:58:38 -05:00 committed by GitHub
parent cd2b736e8c
commit 917e8a08c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 6 deletions

View File

@ -22,7 +22,7 @@
-- SOFTWARE.
--
local json = { _version = "0.1.2" }
local json = { _version = "0.1.2fix" }
-------------------------------------------------------------------------------
-- Encode
@ -233,7 +233,7 @@ end
local function parse_string(str, i)
local res = ""
local res = {}
local j = i + 1
local k = j
@ -244,25 +244,25 @@ local function parse_string(str, i)
decode_error(str, j, "control character in string")
elseif x == 92 then -- `\`: Escape
res = res .. str:sub(k, j - 1)
res[#res + 1] = str:sub(k, j - 1)
j = j + 1
local c = str:sub(j, j)
if c == "u" then
local hex = str:match("^[dD][89aAbB]%x%x\\u%x%x%x%x", j + 1)
or str:match("^%x%x%x%x", j + 1)
or decode_error(str, j - 1, "invalid unicode escape in string")
res = res .. parse_unicode_escape(hex)
res[#res + 1] = parse_unicode_escape(hex)
j = j + #hex
else
if not escape_chars[c] then
decode_error(str, j - 1, "invalid escape char '" .. c .. "' in string")
end
res = res .. escape_char_map_inv[c]
res[#res + 1] = escape_char_map_inv[c]
end
k = j + 1
elseif x == 34 then -- `"`: End of string
res = res .. str:sub(k, j - 1)
res[#res + 1] = str:sub(k, j - 1)
return res, j + 1
end