mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
parent
d82f5d1ba2
commit
24b3b938e8
@ -241,8 +241,6 @@ function s:shada_check_type(type, val) abort
|
|||||||
if msg isnot# 0
|
if msg isnot# 0
|
||||||
return msg
|
return msg
|
||||||
endif
|
endif
|
||||||
if a:val > 0 || a:val < 1
|
|
||||||
endif
|
|
||||||
return 0
|
return 0
|
||||||
elseif a:type is# 'binarray'
|
elseif a:type is# 'binarray'
|
||||||
if type isnot# 'array'
|
if type isnot# 'array'
|
||||||
@ -359,9 +357,14 @@ function s:shada_string(type, v) abort
|
|||||||
if (has_key(s:SHADA_ENUMS, a:type) && type(a:v) == type(0)
|
if (has_key(s:SHADA_ENUMS, a:type) && type(a:v) == type(0)
|
||||||
\&& has_key(s:SHADA_REV_ENUMS[a:type], a:v))
|
\&& has_key(s:SHADA_REV_ENUMS[a:type], a:v))
|
||||||
return s:SHADA_REV_ENUMS[a:type][a:v]
|
return s:SHADA_REV_ENUMS[a:type][a:v]
|
||||||
elseif (a:type is# 'intchar' && type(a:v) == type(0)
|
" Restricting a:v to be <= 127 is not necessary, but intchar constants are
|
||||||
\&& strtrans(nr2char(a:v)) is# nr2char(a:v))
|
" normally expected to be either ASCII printable characters or NUL.
|
||||||
return "'" . nr2char(a:v) . "'"
|
elseif a:type is# 'intchar' && type(a:v) == type(0) && a:v >= 0 && a:v <= 127
|
||||||
|
if a:v > 0 && strtrans(nr2char(a:v)) is# nr2char(a:v)
|
||||||
|
return "'" . nr2char(a:v) . "'"
|
||||||
|
else
|
||||||
|
return "'\\" . a:v . "'"
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
return msgpack#string(a:v)
|
return msgpack#string(a:v)
|
||||||
endif
|
endif
|
||||||
|
@ -609,6 +609,18 @@ describe('In autoload/shada.vim', function()
|
|||||||
'abc',
|
'abc',
|
||||||
-1,
|
-1,
|
||||||
]}] ]]):gsub('\n', ''))
|
]}] ]]):gsub('\n', ''))
|
||||||
|
-- Regression: NUL separator must be properly supported
|
||||||
|
sd2strings_eq({
|
||||||
|
'History entry with timestamp ' .. epoch .. ':',
|
||||||
|
' @ Description_ Value',
|
||||||
|
' - history type SEARCH',
|
||||||
|
' - contents ""',
|
||||||
|
' - separator \'\\0\'',
|
||||||
|
}, ([[ [{'type': 4, 'timestamp': 0, 'data': [
|
||||||
|
1,
|
||||||
|
'',
|
||||||
|
0x0
|
||||||
|
]}] ]]):gsub('\n', ''))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('works with register items', function()
|
it('works with register items', function()
|
||||||
@ -837,7 +849,7 @@ describe('In autoload/shada.vim', function()
|
|||||||
sd2strings_eq({
|
sd2strings_eq({
|
||||||
'Global mark with timestamp ' .. epoch .. ':',
|
'Global mark with timestamp ' .. epoch .. ':',
|
||||||
' % Key Description Value',
|
' % Key Description Value',
|
||||||
' + n name 20',
|
' + n name \'\\20\'',
|
||||||
' + f file name "foo"',
|
' + f file name "foo"',
|
||||||
' # Value is negative',
|
' # Value is negative',
|
||||||
' + l line number -10',
|
' + l line number -10',
|
||||||
@ -852,7 +864,18 @@ describe('In autoload/shada.vim', function()
|
|||||||
sd2strings_eq({
|
sd2strings_eq({
|
||||||
'Global mark with timestamp ' .. epoch .. ':',
|
'Global mark with timestamp ' .. epoch .. ':',
|
||||||
' % Key Description Value',
|
' % Key Description Value',
|
||||||
' + n name 20',
|
' + n name 128',
|
||||||
|
' + f file name "foo"',
|
||||||
|
' + l line number 1',
|
||||||
|
' + c column 0',
|
||||||
|
}, ([[ [{'type': 7, 'timestamp': 0, 'data': {
|
||||||
|
'n': 128,
|
||||||
|
'f': 'foo',
|
||||||
|
}}] ]]):gsub('\n', ''))
|
||||||
|
sd2strings_eq({
|
||||||
|
'Global mark with timestamp ' .. epoch .. ':',
|
||||||
|
' % Key Description Value',
|
||||||
|
' + n name \'\\20\'',
|
||||||
' + f file name "foo"',
|
' + f file name "foo"',
|
||||||
' # Expected integer',
|
' # Expected integer',
|
||||||
' + l line number "FOO"',
|
' + l line number "FOO"',
|
||||||
@ -1123,7 +1146,7 @@ describe('In autoload/shada.vim', function()
|
|||||||
'Local mark with timestamp ' .. epoch .. ':',
|
'Local mark with timestamp ' .. epoch .. ':',
|
||||||
' % Key Description Value',
|
' % Key Description Value',
|
||||||
' + f file name "foo"',
|
' + f file name "foo"',
|
||||||
' + n name 20',
|
' + n name \'\\20\'',
|
||||||
' # Value is negative',
|
' # Value is negative',
|
||||||
' + l line number -10',
|
' + l line number -10',
|
||||||
' # Value is negative',
|
' # Value is negative',
|
||||||
@ -1138,7 +1161,7 @@ describe('In autoload/shada.vim', function()
|
|||||||
'Local mark with timestamp ' .. epoch .. ':',
|
'Local mark with timestamp ' .. epoch .. ':',
|
||||||
' % Key Description Value',
|
' % Key Description Value',
|
||||||
' + f file name "foo"',
|
' + f file name "foo"',
|
||||||
' + n name 20',
|
' + n name \'\\20\'',
|
||||||
' # Expected integer',
|
' # Expected integer',
|
||||||
' + l line number "FOO"',
|
' + l line number "FOO"',
|
||||||
' # Expected integer',
|
' # Expected integer',
|
||||||
@ -1932,13 +1955,13 @@ describe('In autoload/shada.vim', function()
|
|||||||
'Buffer list with timestamp ' .. epoch .. ':',
|
'Buffer list with timestamp ' .. epoch .. ':',
|
||||||
' % Key Description Value',
|
' % Key Description Value',
|
||||||
' # Expected binary string',
|
' # Expected binary string',
|
||||||
' + f file name 10',
|
' + f file name \'\\10\'',
|
||||||
' + l line number 1',
|
' + l line number 1',
|
||||||
' + c column 0',
|
' + c column 0',
|
||||||
'',
|
'',
|
||||||
' % Key Description Value',
|
' % Key Description Value',
|
||||||
' # Expected binary string',
|
' # Expected binary string',
|
||||||
' + f file name 20',
|
' + f file name \'\\20\'',
|
||||||
' + l line number 1',
|
' + l line number 1',
|
||||||
' + c column 0',
|
' + c column 0',
|
||||||
})
|
})
|
||||||
@ -1948,7 +1971,7 @@ describe('In autoload/shada.vim', function()
|
|||||||
'Buffer list with timestamp ' .. epoch .. ':',
|
'Buffer list with timestamp ' .. epoch .. ':',
|
||||||
' % Key Description Value',
|
' % Key Description Value',
|
||||||
' # Expected binary string',
|
' # Expected binary string',
|
||||||
' + f file name 10',
|
' + f file name \'\\10\'',
|
||||||
' + l line number 1',
|
' + l line number 1',
|
||||||
' + c column 0',
|
' + c column 0',
|
||||||
'',
|
'',
|
||||||
|
Loading…
Reference in New Issue
Block a user