mirror of
https://github.com/kikito/inspect.lua.git
synced 2024-12-15 14:34:21 +00:00
escape DEL character. fixes #40
This commit is contained in:
parent
b611db6bfa
commit
df482c613a
@ -46,12 +46,12 @@ local function smartQuote(str)
|
||||
return '"' .. str:gsub('"', '\\"') .. '"'
|
||||
end
|
||||
|
||||
-- \a => '\\a', \0 => '\\0', 31 => '\31'
|
||||
-- \a => '\\a', \0 => nil
|
||||
local shortControlCharEscapes = {
|
||||
["\a"] = "\\a", ["\b"] = "\\b", ["\f"] = "\\f", ["\n"] = "\\n",
|
||||
["\r"] = "\\r", ["\t"] = "\\t", ["\v"] = "\\v"
|
||||
["\r"] = "\\r", ["\t"] = "\\t", ["\v"] = "\\v", ["\127"] = "\\127",
|
||||
}
|
||||
local longControlCharEscapes = {} -- \a => nil, \0 => \000, 31 => \031
|
||||
local longControlCharEscapes = {["\127"]="\127"} -- \a => nil, \0 => \000, 31 => \031
|
||||
for i=0, 31 do
|
||||
local ch = string.char(i)
|
||||
if not shortControlCharEscapes[ch] then
|
||||
@ -59,6 +59,7 @@ for i=0, 31 do
|
||||
longControlCharEscapes[ch] = string.format("\\%03d", i)
|
||||
end
|
||||
end
|
||||
--longControlCharEscapes["\127"]="\\127"
|
||||
|
||||
local function escape(str)
|
||||
return (str:gsub("\\", "\\\\")
|
||||
|
@ -43,7 +43,12 @@ describe( 'inspect', function()
|
||||
inspect('Here are some control characters: \0 \1 \6 \17 \27 \31'))
|
||||
end)
|
||||
|
||||
it('escapes unnamed control characters with 3 digits when they are followed by numbers', function()
|
||||
it('escapes DEL', function()
|
||||
assert.equals('"DEL: \\127"',
|
||||
inspect('DEL: \127'))
|
||||
end)
|
||||
|
||||
it('escapes unnamed control characters with 4 digits when they are followed by numbers', function()
|
||||
assert.equals('"Control chars followed by digits \\0001 \\0011 \\0061 \\0171 \\0271 \\0311"',
|
||||
inspect('Control chars followed by digits \0001 \0011 \0061 \0171 \0271 \0311'))
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user