mirror of https://github.com/rxi/json.lua.git
				
				
				
			Replaced new-line-in-string check with control-char check; tests
							parent
							
								
									7f823abd2e
								
							
						
					
					
						commit
						6fdbd28ed9
					
				
							
								
								
									
										7
									
								
								json.lua
								
								
								
								
							
							
						
						
									
										7
									
								
								json.lua
								
								
								
								
							|  | @ -198,11 +198,10 @@ local function parse_string(str, i, chr) | |||
|   for j = i + 1, #str do | ||||
|     local x = str:sub(j, j) | ||||
| 
 | ||||
|     if x == "\n" then | ||||
|       decode_error(str, j, "unexpected new line in string") | ||||
|     end | ||||
|     if x:byte() < 32 then | ||||
|       decode_error(str, j, "control character in string") | ||||
| 
 | ||||
|     if last == "\\" then | ||||
|     elseif last == "\\" then | ||||
|       if x == "u" then  | ||||
|         local hex = str:sub(j + 1, j + 5) | ||||
|         if not hex:find("%x%x%x%x") then | ||||
|  |  | |||
|  | @ -133,12 +133,14 @@ test("decode invalid", function() | |||
| end) | ||||
| 
 | ||||
| 
 | ||||
| test("decode invalid escape", function() | ||||
| test("decode invalid string", function() | ||||
|   local t = { | ||||
|     [["\z"]], | ||||
|     [["\1"]], | ||||
|     [["\u000z"]], | ||||
|     [["\ud83d\ude0q"]] | ||||
|     [["\ud83d\ude0q"]], | ||||
|     '"x\ny"', | ||||
|     '"x\0y"', | ||||
|   } | ||||
|   for i, v in ipairs(t) do | ||||
|     local status, err = pcall(json.decode, v) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue