mirror of
https://github.com/vim/vim.git
synced 2025-11-13 22:54:27 -05:00
updated for version 7.4.243
Problem: Cannot use setreg() to add text that includes a NUL. Solution: Make setreg() accept a list.
This commit is contained in:
@@ -1,21 +1,150 @@
|
||||
Test for various eval features.
|
||||
Test for various eval features. vim: set ft=vim :
|
||||
|
||||
Note: system clipboard support is not tested. I do not think anybody will thank
|
||||
me for messing with clipboard.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:set encoding=latin1
|
||||
:set noswapfile
|
||||
:lang C
|
||||
:fun AppendRegContents(reg)
|
||||
call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1))))
|
||||
endfun
|
||||
:command -nargs=? AR :call AppendRegContents(<q-args>)
|
||||
:fun SetReg(...)
|
||||
call call('setreg', a:000)
|
||||
call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))
|
||||
call AppendRegContents(a:1)
|
||||
if a:1 isnot# '='
|
||||
execute "silent normal! Go==\n==\e\"".a:1."P"
|
||||
endif
|
||||
endfun
|
||||
:fun ErrExe(str)
|
||||
call append('$', 'Executing '.a:str)
|
||||
try
|
||||
execute a:str
|
||||
catch
|
||||
$put =v:exception
|
||||
endtry
|
||||
endfun
|
||||
:fun Test()
|
||||
$put ='{{{1 let tests'
|
||||
let @" = 'abc'
|
||||
AR "
|
||||
let @" = "abc\n"
|
||||
AR "
|
||||
let @" = "abc\<C-m>"
|
||||
AR "
|
||||
let @= = '"abc"'
|
||||
AR =
|
||||
|
||||
$put ='{{{1 Basic setreg tests'
|
||||
call SetReg('a', 'abcA', 'c')
|
||||
call SetReg('b', 'abcB', 'v')
|
||||
call SetReg('c', 'abcC', 'l')
|
||||
call SetReg('d', 'abcD', 'V')
|
||||
call SetReg('e', 'abcE', 'b')
|
||||
call SetReg('f', 'abcF', "\<C-v>")
|
||||
call SetReg('g', 'abcG', 'b10')
|
||||
call SetReg('h', 'abcH', "\<C-v>10")
|
||||
call SetReg('I', 'abcI')
|
||||
|
||||
$put ='{{{1 Appending single lines with setreg()'
|
||||
call SetReg('A', 'abcAc', 'c')
|
||||
call SetReg('A', 'abcAl', 'l')
|
||||
call SetReg('A', 'abcAc2','c')
|
||||
call SetReg('b', 'abcBc', 'ca')
|
||||
call SetReg('b', 'abcBb', 'ba')
|
||||
call SetReg('b', 'abcBc2','ca')
|
||||
call SetReg('b', 'abcBb2','b50a')
|
||||
|
||||
call SetReg('C', 'abcCl', 'l')
|
||||
call SetReg('C', 'abcCc', 'c')
|
||||
call SetReg('D', 'abcDb', 'b')
|
||||
|
||||
call SetReg('E', 'abcEb', 'b')
|
||||
call SetReg('E', 'abcEl', 'l')
|
||||
call SetReg('F', 'abcFc', 'c')
|
||||
|
||||
$put ='{{{1 Appending NL with setreg()'
|
||||
call setreg('a', 'abcA2', 'c')
|
||||
call setreg('b', 'abcB2', 'v')
|
||||
call setreg('c', 'abcC2', 'l')
|
||||
call setreg('d', 'abcD2', 'V')
|
||||
call setreg('e', 'abcE2', 'b')
|
||||
call setreg('f', 'abcF2', "\<C-v>")
|
||||
call setreg('g', 'abcG2', 'b10')
|
||||
call setreg('h', 'abcH2', "\<C-v>10")
|
||||
call setreg('I', 'abcI2')
|
||||
|
||||
call SetReg('A', "\n")
|
||||
call SetReg('B', "\n", 'c')
|
||||
call SetReg('C', "\n")
|
||||
call SetReg('D', "\n", 'l')
|
||||
call SetReg('E', "\n")
|
||||
call SetReg('F', "\n", 'b')
|
||||
|
||||
$put ='{{{1 Setting lists with setreg()'
|
||||
call SetReg('a', ['abcA3'], 'c')
|
||||
call SetReg('b', ['abcB3'], 'l')
|
||||
call SetReg('c', ['abcC3'], 'b')
|
||||
call SetReg('d', ['abcD3'])
|
||||
|
||||
$put ='{{{1 Appending lists with setreg()'
|
||||
call SetReg('A', ['abcA3c'], 'c')
|
||||
call SetReg('b', ['abcB3l'], 'la')
|
||||
call SetReg('C', ['abcC3b'], 'lb')
|
||||
call SetReg('D', ['abcD32'])
|
||||
|
||||
call SetReg('A', ['abcA32'])
|
||||
call SetReg('B', ['abcB3c'], 'c')
|
||||
call SetReg('C', ['abcC3l'], 'l')
|
||||
call SetReg('D', ['abcD3b'], 'b')
|
||||
|
||||
$put ='{{{1 Appending lists with NL with setreg()'
|
||||
call SetReg('A', ["\n", 'abcA3l2'], 'l')
|
||||
call SetReg('B', ["\n", 'abcB3c2'], 'c')
|
||||
call SetReg('C', ["\n", 'abcC3b2'], 'b')
|
||||
call SetReg('D', ["\n", 'abcD3b50'],'b50')
|
||||
|
||||
$put ='{{{1 Setting lists with NLs with setreg()'
|
||||
call SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2"])
|
||||
call SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2"], 'c')
|
||||
call SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2"], 'l')
|
||||
call SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\nabcD4b-4-2"], 'b')
|
||||
call SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4b10-4\nabcE4b10-4-2"], 'b10')
|
||||
|
||||
$put ='{{{1 Search and expressions'
|
||||
call SetReg('/', ['abc/'])
|
||||
call SetReg('/', ["abc/\n"])
|
||||
call SetReg('=', ['"abc/"'])
|
||||
call SetReg('=', ["\"abc/\n\""])
|
||||
|
||||
$put ='{{{1 Errors'
|
||||
call ErrExe('call setreg()')
|
||||
call ErrExe('call setreg(1)')
|
||||
call ErrExe('call setreg(1, 2, 3, 4)')
|
||||
call ErrExe('call setreg([], 2)')
|
||||
call ErrExe('call setreg(1, {})')
|
||||
call ErrExe('call setreg(1, 2, [])')
|
||||
call ErrExe('call setreg("/", [1, 2])')
|
||||
call ErrExe('call setreg("=", [1, 2])')
|
||||
call ErrExe('call setreg(1, ["", "", [], ""])')
|
||||
endfun
|
||||
:"
|
||||
:" test getreg()
|
||||
/^one
|
||||
"ay3j:$put =string(getreg('a'))
|
||||
:$put =string(getreg('a', 1, 1))
|
||||
:call Test()
|
||||
:"
|
||||
:/^result/,$w! test.out
|
||||
:qa!
|
||||
:delfunction SetReg
|
||||
:delfunction AppendRegContents
|
||||
:delfunction ErrExe
|
||||
:delfunction Test
|
||||
:delcommand AR
|
||||
:call garbagecollect(1)
|
||||
:"
|
||||
:/^start:/+1,$wq! test.out
|
||||
:" vim: et ts=4 isk-=\: fmr=???,???
|
||||
:call getchar()
|
||||
ENDTEST
|
||||
|
||||
one
|
||||
two
|
||||
three
|
||||
four
|
||||
five
|
||||
|
||||
result
|
||||
start:
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user