Patch 8.1.0711
Problem: Test files still use function!.
Solution: Remove the exclamation mark. Fix overwriting a function.
Files: src/testdir/test49.vim, src/testdir/test_autocmd.vim,
src/testdir/test_charsearch.vim,
src/testdir/test_charsearch_utf8.vim,
src/testdir/test_display.vim, src/testdir/test_edit.vim,
src/testdir/test_eval_func.vim, src/testdir/test_fnameescape.vim,
src/testdir/test_getcwd.vim, src/testdir/test_highlight.vim,
src/testdir/test_hlsearch.vim, src/testdir/test_ins_complete.vim,
src/testdir/test_lambda.vim, src/testdir/test_listdict.vim,
src/testdir/test_listlbr.vim, src/testdir/test_listlbr_utf8.vim,
src/testdir/test_marks.vim, src/testdir/test_matchadd_conceal.vim,
src/testdir/test_matchadd_conceal_utf8.vim,
src/testdir/test_messages.vim, src/testdir/test_number.vim,
src/testdir/test_options.vim, src/testdir/test_partial.vim,
src/testdir/test_smartindent.vim, src/testdir/test_substitute.vim,
src/testdir/test_system.vim, src/testdir/test_terminal.vim,
src/testdir/test_textobjects.vim, src/testdir/test_utf8.vim,
src/testdir/test_utf8_comparisons.vim,
src/testdir/test_vartabs.vim, src/testdir/test_vimscript.vim,
src/testdir/test_window_cmd.vim, src/testdir/test_xxd.vim
*** ../vim-8.1.0710/src/testdir/test49.vim 2017-02-23 18:49:31.000000000
+0100
--- src/testdir/test49.vim 2019-01-09 22:29:59.429878275 +0100
***************
*** 1,6 ****
" Vim script language tests
" Author: Servatius Brandt <[email protected]>
! " Last Change: 2016 Feb 07
"-------------------------------------------------------------------------------
" Test environment {{{1
--- 1,6 ----
" Vim script language tests
" Author: Servatius Brandt <[email protected]>
! " Last Change: 2019 Jan 09
"-------------------------------------------------------------------------------
" Test environment {{{1
***************
*** 318,324 ****
let ExtraVimBase = expand("<sfile>")
let ExtraVimTestEnv = ""
"
! function! ExtraVim(...)
" Count how often this function is called.
let g:ExtraVimCount = g:ExtraVimCount + 1
--- 318,324 ----
let ExtraVimBase = expand("<sfile>")
let ExtraVimTestEnv = ""
"
! function ExtraVim(...)
" Count how often this function is called.
let g:ExtraVimCount = g:ExtraVimCount + 1
***************
*** 500,506 ****
" an ExtraVim script as passed by ExtraVim() in ExtraVimBegin.
"
" EXTRA_VIM_START - do not change or remove this line.
! function! ExtraVimThrowpoint()
if !exists("g:ExtraVimBegin")
Xout "ExtraVimThrowpoint() used outside ExtraVim() script."
return v:throwpoint
--- 500,506 ----
" an ExtraVim script as passed by ExtraVim() in ExtraVimBegin.
"
" EXTRA_VIM_START - do not change or remove this line.
! function ExtraVimThrowpoint()
if !exists("g:ExtraVimBegin")
Xout "ExtraVimThrowpoint() used outside ExtraVim() script."
return v:throwpoint
***************
*** 530,536 ****
" as a script file, use ExecAsScript below.
"
" EXTRA_VIM_START - do not change or remove this line.
! function! MakeScript(funcname, ...)
let script = tempname()
execute "redir! >" . script
execute "function" a:funcname
--- 530,536 ----
" as a script file, use ExecAsScript below.
"
" EXTRA_VIM_START - do not change or remove this line.
! function MakeScript(funcname, ...)
let script = tempname()
execute "redir! >" . script
execute "function" a:funcname
***************
*** 568,574 ****
" location specified in the function.
"
" EXTRA_VIM_START - do not change or remove this line.
! function! ExecAsScript(funcname)
" Make a script from the function passed as argument.
let script = MakeScript(a:funcname)
--- 568,574 ----
" location specified in the function.
"
" EXTRA_VIM_START - do not change or remove this line.
! function ExecAsScript(funcname)
" Make a script from the function passed as argument.
let script = MakeScript(a:funcname)
***************
*** 8548,8554 ****
" Remove the autocommands for the events specified as arguments in all used
" autogroups.
! function! Delete_autocommands(...)
let augfile = tempname()
while 1
try
--- 8548,8554 ----
" Remove the autocommands for the events specified as arguments in all used
" autogroups.
! function Delete_autocommands(...)
let augfile = tempname()
while 1
try
*** ../vim-8.1.0710/src/testdir/test_autocmd.vim 2018-12-21
13:03:24.292337854 +0100
--- src/testdir/test_autocmd.vim 2019-01-09 22:30:57.069457594 +0100
***************
*** 2,8 ****
source shared.vim
! func! s:cleanup_buffers() abort
for bnr in range(1, bufnr('$'))
if bufloaded(bnr) && bufnr('%') != bnr
execute 'bd! ' . bnr
--- 2,8 ----
source shared.vim
! func s:cleanup_buffers() abort
for bnr in range(1, bufnr('$'))
if bufloaded(bnr) && bufnr('%') != bnr
execute 'bd! ' . bnr
***************
*** 1343,1349 ****
endfunc
let g:setline_handled = v:false
! func! SetLineOne()
if !g:setline_handled
call setline(1, "(x)")
let g:setline_handled = v:true
--- 1343,1349 ----
endfunc
let g:setline_handled = v:false
! func SetLineOne()
if !g:setline_handled
call setline(1, "(x)")
let g:setline_handled = v:true
*** ../vim-8.1.0710/src/testdir/test_charsearch.vim 2016-09-07
20:37:01.000000000 +0200
--- src/testdir/test_charsearch.vim 2019-01-09 22:31:27.609160734 +0100
***************
*** 1,5 ****
! function! Test_charsearch()
enew!
call append(0, ['Xabcdefghijkemnopqretuvwxyz',
\ 'Yabcdefghijkemnopqretuvwxyz',
--- 1,5 ----
! func Test_charsearch()
enew!
call append(0, ['Xabcdefghijkemnopqretuvwxyz',
\ 'Yabcdefghijkemnopqretuvwxyz',
***************
*** 29,38 ****
normal! ;;p
call assert_equal('ZabcdeZfghijkZZemnokqretkZvwxyz', getline(3))
enew!
! endfunction
" Test for t,f,F,T movement commands and 'cpo-;' setting
! function! Test_search_cmds()
enew!
call append(0, ["aaa two three four", " zzz", "yyy ",
\ "bbb yee yoo four", "ccc two three four",
--- 29,38 ----
normal! ;;p
call assert_equal('ZabcdeZfghijkZZemnokqretkZvwxyz', getline(3))
enew!
! endfunc
" Test for t,f,F,T movement commands and 'cpo-;' setting
! func Test_search_cmds()
enew!
call append(0, ["aaa two three four", " zzz", "yyy ",
\ "bbb yee yoo four", "ccc two three four",
***************
*** 59,62 ****
call assert_equal('ccc', getline(5))
call assert_equal('ddd yee y', getline(6))
enew!
! endfunction
--- 59,62 ----
call assert_equal('ccc', getline(5))
call assert_equal('ddd yee y', getline(6))
enew!
! endfunc
*** ../vim-8.1.0710/src/testdir/test_charsearch_utf8.vim 2017-03-12
16:16:51.000000000 +0100
--- src/testdir/test_charsearch_utf8.vim 2019-01-09 22:31:48.896914212
+0100
***************
*** 4,10 ****
endif
" Test for t,f,F,T movement commands
! function! Test_search_cmds()
new!
call setline(1, "・最初から最後まで最強のVimは最高")
1
--- 4,10 ----
endif
" Test for t,f,F,T movement commands
! func Test_search_cmds()
new!
call setline(1, "・最初から最後まで最強のVimは最高")
1
***************
*** 17,22 ****
normal! ,
call assert_equal([0, 1, 28, 0], getpos('.'))
bw!
! endfunction
" vim: shiftwidth=2 sts=2 expandtab
--- 17,22 ----
normal! ,
call assert_equal([0, 1, 28, 0], getpos('.'))
bw!
! endfunc
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.1.0710/src/testdir/test_display.vim 2017-08-13
20:14:30.000000000 +0200
--- src/testdir/test_display.vim 2019-01-09 22:32:22.280533816 +0100
***************
*** 5,11 ****
source view_util.vim
! func! Test_display_foldcolumn()
if !has("folding")
return
endif
--- 5,11 ----
source view_util.vim
! func Test_display_foldcolumn()
if !has("folding")
return
endif
***************
*** 38,44 ****
quit!
endfunc
! func! Test_display_foldtext_mbyte()
if !has("folding") || !has("multi_byte")
return
endif
--- 38,44 ----
quit!
endfunc
! func Test_display_foldtext_mbyte()
if !has("folding") || !has("multi_byte")
return
endif
*** ../vim-8.1.0710/src/testdir/test_edit.vim 2018-11-02 11:59:11.555438565
+0100
--- src/testdir/test_edit.vim 2019-01-09 22:34:16.315285600 +0100
***************
*** 9,15 ****
" Needs to come first until the bug in getchar() is
" fixed: https://groups.google.com/d/msg/vim_dev/fXL9yme4H4c/bOR-U6_bAQAJ
! func! Test_edit_00b()
new
call setline(1, ['abc '])
inoreabbr <buffer> h here some more
--- 9,15 ----
" Needs to come first until the bug in getchar() is
" fixed: https://groups.google.com/d/msg/vim_dev/fXL9yme4H4c/bOR-U6_bAQAJ
! func Test_edit_00b()
new
call setline(1, ['abc '])
inoreabbr <buffer> h here some more
***************
*** 21,27 ****
bw!
endfunc
! func! Test_edit_01()
" set for Travis CI?
" set nocp noesckeys
new
--- 21,27 ----
bw!
endfunc
! func Test_edit_01()
" set for Travis CI?
" set nocp noesckeys
new
***************
*** 61,67 ****
bw!
endfunc
! func! Test_edit_02()
" Change cursor position in InsertCharPre command
new
call setline(1, 'abc')
--- 61,67 ----
bw!
endfunc
! func Test_edit_02()
" Change cursor position in InsertCharPre command
new
call setline(1, 'abc')
***************
*** 101,107 ****
bw!
endfunc
! func! Test_edit_03()
" Change cursor after <c-o> command to end of line
new
call setline(1, 'abc')
--- 101,107 ----
bw!
endfunc
! func Test_edit_03()
" Change cursor after <c-o> command to end of line
new
call setline(1, 'abc')
***************
*** 120,126 ****
bw!
endfunc
! func! Test_edit_04()
" test for :stopinsert
new
call setline(1, 'abc')
--- 120,126 ----
bw!
endfunc
! func Test_edit_04()
" test for :stopinsert
new
call setline(1, 'abc')
***************
*** 132,138 ****
bw!
endfunc
! func! Test_edit_05()
" test for folds being opened
new
call setline(1, ['abcX', 'abcX', 'zzzZ'])
--- 132,138 ----
bw!
endfunc
! func Test_edit_05()
" test for folds being opened
new
call setline(1, ['abcX', 'abcX', 'zzzZ'])
***************
*** 154,160 ****
bw!
endfunc
! func! Test_edit_06()
" Test in diff mode
if !has("diff") || !executable("diff")
return
--- 154,160 ----
bw!
endfunc
! func Test_edit_06()
" Test in diff mode
if !has("diff") || !executable("diff")
return
***************
*** 176,182 ****
bw!
endfunc
! func! Test_edit_07()
" 1) Test with completion <c-l> when popupmenu is visible
new
call setline(1, 'J')
--- 176,182 ----
bw!
endfunc
! func Test_edit_07()
" 1) Test with completion <c-l> when popupmenu is visible
new
call setline(1, 'J')
***************
*** 213,219 ****
bw!
endfunc
! func! Test_edit_08()
" reset insertmode from i_ctrl-r_=
let g:bufnr = bufnr('%')
new
--- 213,219 ----
bw!
endfunc
! func Test_edit_08()
" reset insertmode from i_ctrl-r_=
let g:bufnr = bufnr('%')
new
***************
*** 227,233 ****
unlet g:bufnr
endfunc
! func! Test_edit_09()
" test i_CTRL-\ combinations
new
call setline(1, ['abc', 'def', 'ghi'])
--- 227,233 ----
unlet g:bufnr
endfunc
! func Test_edit_09()
" test i_CTRL-\ combinations
new
call setline(1, ['abc', 'def', 'ghi'])
***************
*** 257,263 ****
bw!
endfunc
! func! Test_edit_10()
" Test for starting selectmode
new
set selectmode=key keymodel=startsel
--- 257,263 ----
bw!
endfunc
! func Test_edit_10()
" Test for starting selectmode
new
set selectmode=key keymodel=startsel
***************
*** 269,275 ****
bw!
endfunc
! func! Test_edit_11()
" Test that indenting kicks in
new
set cindent
--- 269,275 ----
bw!
endfunc
! func Test_edit_11()
" Test that indenting kicks in
new
set cindent
***************
*** 313,319 ****
bw!
endfunc
! func! Test_edit_11_indentexpr()
" Test that indenting kicks in
new
" Use indentexpr instead of cindenting
--- 313,319 ----
bw!
endfunc
! func Test_edit_11_indentexpr()
" Test that indenting kicks in
new
" Use indentexpr instead of cindenting
***************
*** 340,346 ****
bw!
endfunc
! func! Test_edit_12()
" Test changing indent in replace mode
new
call setline(1, ["\tabc", "\tdef"])
--- 340,346 ----
bw!
endfunc
! func Test_edit_12()
" Test changing indent in replace mode
new
call setline(1, ["\tabc", "\tdef"])
***************
*** 392,398 ****
bw!
endfunc
! func! Test_edit_13()
" Test smartindenting
if exists("+smartindent")
new
--- 392,398 ----
bw!
endfunc
! func Test_edit_13()
" Test smartindenting
if exists("+smartindent")
new
***************
*** 405,411 ****
endif
endfunc
! func! Test_edit_CR()
" Test for <CR> in insert mode
" basically only in quickfix mode ist tested, the rest
" has been taken care of by other tests
--- 405,411 ----
endif
endfunc
! func Test_edit_CR()
" Test for <CR> in insert mode
" basically only in quickfix mode ist tested, the rest
" has been taken care of by other tests
***************
*** 438,444 ****
call delete('Xqflist.txt')
endfunc
! func! Test_edit_CTRL_()
" disabled for Windows builds, why?
if !has("multi_byte") || !has("rightleft") || has("win32")
return
--- 438,444 ----
call delete('Xqflist.txt')
endfunc
! func Test_edit_CTRL_()
" disabled for Windows builds, why?
if !has("multi_byte") || !has("rightleft") || has("win32")
return
***************
*** 469,475 ****
endfunc
" needs to come first, to have the @. register empty
! func! Test_edit_00a_CTRL_A()
" Test pressing CTRL-A
new
call setline(1, repeat([''], 5))
--- 469,475 ----
endfunc
" needs to come first, to have the @. register empty
! func Test_edit_00a_CTRL_A()
" Test pressing CTRL-A
new
call setline(1, repeat([''], 5))
***************
*** 489,495 ****
bw!
endfunc
! func! Test_edit_CTRL_EY()
" Ctrl-E/ Ctrl-Y in insert mode completion to scroll
10new
call setline(1, range(1, 100))
--- 489,495 ----
bw!
endfunc
! func Test_edit_CTRL_EY()
" Ctrl-E/ Ctrl-Y in insert mode completion to scroll
10new
call setline(1, range(1, 100))
***************
*** 505,511 ****
bw!
endfunc
! func! Test_edit_CTRL_G()
new
call setline(1, ['foobar', 'foobar', 'foobar'])
call cursor(2, 4)
--- 505,511 ----
bw!
endfunc
! func Test_edit_CTRL_G()
new
call setline(1, ['foobar', 'foobar', 'foobar'])
call cursor(2, 4)
***************
*** 523,529 ****
bw!
endfunc
! func! Test_edit_CTRL_I()
" Tab in completion mode
let path=expand("%:p:h")
new
--- 523,529 ----
bw!
endfunc
! func Test_edit_CTRL_I()
" Tab in completion mode
let path=expand("%:p:h")
new
***************
*** 547,553 ****
bw!
endfunc
! func! Test_edit_CTRL_K()
" Test pressing CTRL-K (basically only dictionary completion and digraphs
" the rest is already covered
call writefile(['A', 'AA', 'AAA', 'AAAA'], 'Xdictionary.txt')
--- 547,553 ----
bw!
endfunc
! func Test_edit_CTRL_K()
" Test pressing CTRL-K (basically only dictionary completion and digraphs
" the rest is already covered
call writefile(['A', 'AA', 'AAA', 'AAAA'], 'Xdictionary.txt')
***************
*** 620,626 ****
bw!
endfunc
! func! Test_edit_CTRL_L()
" Test Ctrl-X Ctrl-L (line completion)
new
set complete=.
--- 620,626 ----
bw!
endfunc
! func Test_edit_CTRL_L()
" Test Ctrl-X Ctrl-L (line completion)
new
set complete=.
***************
*** 676,682 ****
bw!
endfunc
! func! Test_edit_CTRL_N()
" Check keyword completion
new
set complete=.
--- 676,682 ----
bw!
endfunc
! func Test_edit_CTRL_N()
" Check keyword completion
new
set complete=.
***************
*** 697,703 ****
bw!
endfunc
! func! Test_edit_CTRL_O()
" Check for CTRL-O in insert mode
new
inoreabbr <buffer> h here some more
--- 697,703 ----
bw!
endfunc
! func Test_edit_CTRL_O()
" Check for CTRL-O in insert mode
new
inoreabbr <buffer> h here some more
***************
*** 722,728 ****
bw!
endfunc
! func! Test_edit_CTRL_R()
" Insert Register
new
call test_override("ALL", 1)
--- 722,728 ----
bw!
endfunc
! func Test_edit_CTRL_R()
" Insert Register
new
call test_override("ALL", 1)
***************
*** 737,743 ****
bw!
endfunc
! func! Test_edit_CTRL_S()
" Test pressing CTRL-S (basically only spellfile completion)
" the rest is already covered
new
--- 737,743 ----
bw!
endfunc
! func Test_edit_CTRL_S()
" Test pressing CTRL-S (basically only spellfile completion)
" the rest is already covered
new
***************
*** 781,787 ****
bw!
endfunc
! func! Test_edit_CTRL_T()
" Check for CTRL-T and CTRL-X CTRL-T in insert mode
" 1) increase indent
new
--- 781,787 ----
bw!
endfunc
! func Test_edit_CTRL_T()
" Check for CTRL-T and CTRL-X CTRL-T in insert mode
" 1) increase indent
new
***************
*** 858,864 ****
bw!
endfunc
! func! Test_edit_CTRL_U()
" Test 'completefunc'
new
" -1, -2 and -3 are special return values
--- 858,864 ----
bw!
endfunc
! func Test_edit_CTRL_U()
" Test 'completefunc'
new
" -1, -2 and -3 are special return values
***************
*** 917,923 ****
bw!
endfunc
! func! Test_edit_CTRL_Z()
" Ctrl-Z when insertmode is not set inserts it literally
new
call setline(1, 'abc')
--- 917,923 ----
bw!
endfunc
! func Test_edit_CTRL_Z()
" Ctrl-Z when insertmode is not set inserts it literally
new
call setline(1, 'abc')
***************
*** 927,933 ****
" TODO: How to Test Ctrl-Z in insert mode, e.g. suspend?
endfunc
! func! Test_edit_DROP()
if !has("dnd")
return
endif
--- 927,933 ----
" TODO: How to Test Ctrl-Z in insert mode, e.g. suspend?
endfunc
! func Test_edit_DROP()
if !has("dnd")
return
endif
***************
*** 943,949 ****
bw!
endfunc
! func! Test_edit_CTRL_V()
if has("ebcdic")
return
endif
--- 943,949 ----
bw!
endfunc
! func Test_edit_CTRL_V()
if has("ebcdic")
return
endif
***************
*** 971,977 ****
bw!
endfunc
! func! Test_edit_F1()
" Pressing <f1>
new
call feedkeys(":set im\<cr>\<f1>\<c-l>", 'tnix')
--- 971,977 ----
bw!
endfunc
! func Test_edit_F1()
" Pressing <f1>
new
call feedkeys(":set im\<cr>\<f1>\<c-l>", 'tnix')
***************
*** 981,987 ****
bw
endfunc
! func! Test_edit_F21()
" Pressing <f21>
" sends a netbeans command
if has("netbeans_intg")
--- 981,987 ----
bw
endfunc
! func Test_edit_F21()
" Pressing <f21>
" sends a netbeans command
if has("netbeans_intg")
***************
*** 992,998 ****
endif
endfunc
! func! Test_edit_HOME_END()
" Test Home/End Keys
new
set foldopen+=hor
--- 992,998 ----
endif
endfunc
! func Test_edit_HOME_END()
" Test Home/End Keys
new
set foldopen+=hor
***************
*** 1007,1013 ****
bw!
endfunc
! func! Test_edit_INS()
" Test for Pressing <Insert>
new
call setline(1, ['abc', 'def'])
--- 1007,1013 ----
bw!
endfunc
! func Test_edit_INS()
" Test for Pressing <Insert>
new
call setline(1, ['abc', 'def'])
***************
*** 1021,1027 ****
bw!
endfunc
! func! Test_edit_LEFT_RIGHT()
" Left, Shift-Left, Right, Shift-Right
new
call setline(1, ['abc def ghi', 'ABC DEF GHI', 'ZZZ YYY XXX'])
--- 1021,1027 ----
bw!
endfunc
! func Test_edit_LEFT_RIGHT()
" Left, Shift-Left, Right, Shift-Right
new
call setline(1, ['abc def ghi', 'ABC DEF GHI', 'ZZZ YYY XXX'])
***************
*** 1068,1074 ****
bw!
endfunc
! func! Test_edit_MOUSE()
" This is a simple test, since we not really using the mouse here
if !has("mouse")
return
--- 1068,1074 ----
bw!
endfunc
! func Test_edit_MOUSE()
" This is a simple test, since we not really using the mouse here
if !has("mouse")
return
***************
*** 1123,1129 ****
bw!
endfunc
! func! Test_edit_PAGEUP_PAGEDOWN()
10new
call setline(1, repeat(['abc def ghi'], 30))
call cursor(1, 1)
--- 1123,1129 ----
bw!
endfunc
! func Test_edit_PAGEUP_PAGEDOWN()
10new
call setline(1, repeat(['abc def ghi'], 30))
call cursor(1, 1)
***************
*** 1222,1228 ****
bw!
endfunc
! func! Test_edit_forbidden()
new
" 1) edit in the sandbox is not allowed
call setline(1, 'a')
--- 1222,1228 ----
bw!
endfunc
! func Test_edit_forbidden()
new
" 1) edit in the sandbox is not allowed
call setline(1, 'a')
***************
*** 1282,1288 ****
bw!
endfunc
! func! Test_edit_rightleft()
" Cursor in rightleft mode moves differently
if !exists("+rightleft")
return
--- 1282,1288 ----
bw!
endfunc
! func Test_edit_rightleft()
" Cursor in rightleft mode moves differently
if !exists("+rightleft")
return
*** ../vim-8.1.0710/src/testdir/test_eval_func.vim 2014-04-29
13:57:34.000000000 +0200
--- src/testdir/test_eval_func.vim 2019-01-09 22:34:29.947141160 +0100
***************
*** 1,6 ****
" Vim script used in test_eval.in. Needed for script-local function.
! func! s:Testje()
return "foo"
endfunc
let Bar = function('s:Testje')
--- 1,6 ----
" Vim script used in test_eval.in. Needed for script-local function.
! func s:Testje()
return "foo"
endfunc
let Bar = function('s:Testje')
*** ../vim-8.1.0710/src/testdir/test_fnameescape.vim 2016-09-07
20:37:01.000000000 +0200
--- src/testdir/test_fnameescape.vim 2019-01-09 22:35:06.338760034 +0100
***************
*** 1,6 ****
" Test if fnameescape is correct for special chars like !
! function! Test_fnameescape()
let fname = 'Xspa ce'
let status = v:false
try
--- 1,6 ----
" Test if fnameescape is correct for special chars like !
! func Test_fnameescape()
let fname = 'Xspa ce'
let status = v:false
try
***************
*** 18,21 ****
endtry
call assert_true(status, "ExclamationMark")
call delete(fname)
! endfunction
--- 18,21 ----
endtry
call assert_true(status, "ExclamationMark")
call delete(fname)
! endfunc
*** ../vim-8.1.0710/src/testdir/test_getcwd.vim 2018-09-23 19:36:10.215763496
+0200
--- src/testdir/test_getcwd.vim 2019-01-09 22:35:35.954454435 +0100
***************
*** 1,112 ****
! function! GetCwdInfo(win, tab)
! let tab_changed = 0
! let mod = ":t"
! if a:tab > 0 && a:tab != tabpagenr()
! let tab_changed = 1
! exec "tabnext " . a:tab
! endif
! let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
! if tab_changed
! tabprevious
! endif
! if a:win == 0 && a:tab == 0
! let dirname = fnamemodify(getcwd(), mod)
! let lflag = haslocaldir()
! elseif a:tab == 0
! let dirname = fnamemodify(getcwd(a:win), mod)
! let lflag = haslocaldir(a:win)
! else
! let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
! let lflag = haslocaldir(a:win, a:tab)
! endif
! return bufname . ' ' . dirname . ' ' . lflag
! endfunction
" Do all test in a separate window to avoid E211 when we recursively
" delete the Xtopdir directory during cleanup
function SetUp()
! set visualbell
! set nocp viminfo+=nviminfo
! " On windows a swapfile in Xtopdir prevents it from being cleaned up.
! set noswapfile
! " On windows a stale "Xtopdir" directory may exist, remove it so that
! " we start from a clean state.
! call delete("Xtopdir", "rf")
! new
! call mkdir('Xtopdir')
! cd Xtopdir
! let g:topdir = getcwd()
! call mkdir('Xdir1')
! call mkdir('Xdir2')
! call mkdir('Xdir3')
endfunction
let g:cwd=getcwd()
function TearDown()
! q
! exec "cd " . g:cwd
! call delete("Xtopdir", "rf")
endfunction
function Test_GetCwd()
! new a
! new b
! new c
! 3wincmd w
! lcd Xdir1
! call assert_equal("a Xdir1 1", GetCwdInfo(0, 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! lcd Xdir3
! call assert_equal("c Xdir3 1", GetCwdInfo(0, 0))
! call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0))
! call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
! call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
! call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
! call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
! call assert_equal(g:topdir, getcwd(-1))
!
! tabnew x
! new y
! new z
! 3wincmd w
! call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! lcd Xdir2
! call assert_equal("y Xdir2 1", GetCwdInfo(0, 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! lcd Xdir3
! call assert_equal("z Xdir3 1", GetCwdInfo(0, 0))
! call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
! call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0))
! call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0))
! call assert_equal(g:topdir, getcwd(-1))
! let tp_nr = tabpagenr()
! tabrewind
! call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
! call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr))
! call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr))
! call assert_equal(g:topdir, getcwd(-1))
endfunc
function Test_GetCwd_lcd_shellslash()
! new
! let root = fnamemodify('/', ':p')
! exe 'lcd '.root
! let cwd = getcwd()
! if !exists('+shellslash') || &shellslash
! call assert_equal(cwd[-1:], '/')
! else
! call assert_equal(cwd[-1:], '\')
! endif
endfunc
--- 1,112 ----
! func GetCwdInfo(win, tab)
! let tab_changed = 0
! let mod = ":t"
! if a:tab > 0 && a:tab != tabpagenr()
! let tab_changed = 1
! exec "tabnext " . a:tab
! endif
! let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
! if tab_changed
! tabprevious
! endif
! if a:win == 0 && a:tab == 0
! let dirname = fnamemodify(getcwd(), mod)
! let lflag = haslocaldir()
! elseif a:tab == 0
! let dirname = fnamemodify(getcwd(a:win), mod)
! let lflag = haslocaldir(a:win)
! else
! let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
! let lflag = haslocaldir(a:win, a:tab)
! endif
! return bufname . ' ' . dirname . ' ' . lflag
! endfunc
" Do all test in a separate window to avoid E211 when we recursively
" delete the Xtopdir directory during cleanup
function SetUp()
! set visualbell
! set nocp viminfo+=nviminfo
! " On windows a swapfile in Xtopdir prevents it from being cleaned up.
! set noswapfile
! " On windows a stale "Xtopdir" directory may exist, remove it so that
! " we start from a clean state.
! call delete("Xtopdir", "rf")
! new
! call mkdir('Xtopdir')
! cd Xtopdir
! let g:topdir = getcwd()
! call mkdir('Xdir1')
! call mkdir('Xdir2')
! call mkdir('Xdir3')
endfunction
let g:cwd=getcwd()
function TearDown()
! q
! exec "cd " . g:cwd
! call delete("Xtopdir", "rf")
endfunction
function Test_GetCwd()
! new a
! new b
! new c
! 3wincmd w
! lcd Xdir1
! call assert_equal("a Xdir1 1", GetCwdInfo(0, 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! lcd Xdir3
! call assert_equal("c Xdir3 1", GetCwdInfo(0, 0))
! call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0))
! call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
! call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
! call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
! call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
! call assert_equal(g:topdir, getcwd(-1))
!
! tabnew x
! new y
! new z
! 3wincmd w
! call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! lcd Xdir2
! call assert_equal("y Xdir2 1", GetCwdInfo(0, 0))
! call assert_equal(g:topdir, getcwd(-1))
! wincmd W
! lcd Xdir3
! call assert_equal("z Xdir3 1", GetCwdInfo(0, 0))
! call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
! call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0))
! call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0))
! call assert_equal(g:topdir, getcwd(-1))
! let tp_nr = tabpagenr()
! tabrewind
! call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
! call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr))
! call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr))
! call assert_equal(g:topdir, getcwd(-1))
endfunc
function Test_GetCwd_lcd_shellslash()
! new
! let root = fnamemodify('/', ':p')
! exe 'lcd '.root
! let cwd = getcwd()
! if !exists('+shellslash') || &shellslash
! call assert_equal(cwd[-1:], '/')
! else
! call assert_equal(cwd[-1:], '\')
! endif
endfunc
*** ../vim-8.1.0710/src/testdir/test_highlight.vim 2018-03-12
22:16:02.000000000 +0100
--- src/testdir/test_highlight.vim 2019-01-09 22:36:26.589940740 +0100
***************
*** 38,52 ****
call assert_fails("hi Crash term='asdf", "E475:")
endfunc
! function! HighlightArgs(name)
return 'hi ' . substitute(split(execute('hi ' . a:name), '\n')[0],
'\<xxx\>', '', '')
! endfunction
! function! IsColorable()
return has('gui_running') || str2nr(&t_Co) >= 8
! endfunction
! function! HiCursorLine()
let hiCursorLine = HighlightArgs('CursorLine')
if has('gui_running')
let guibg = matchstr(hiCursorLine, 'guibg=\w\+')
--- 38,52 ----
call assert_fails("hi Crash term='asdf", "E475:")
endfunc
! func HighlightArgs(name)
return 'hi ' . substitute(split(execute('hi ' . a:name), '\n')[0],
'\<xxx\>', '', '')
! endfunc
! func IsColorable()
return has('gui_running') || str2nr(&t_Co) >= 8
! endfunc
! func HiCursorLine()
let hiCursorLine = HighlightArgs('CursorLine')
if has('gui_running')
let guibg = matchstr(hiCursorLine, 'guibg=\w\+')
***************
*** 57,65 ****
let hi_bg = 'hi CursorLine cterm=NONE ctermbg=Gray'
endif
return [hiCursorLine, hi_ul, hi_bg]
! endfunction
! function! Check_lcs_eol_attrs(attrs, row, col)
let save_lcs = &lcs
set list
--- 57,65 ----
let hi_bg = 'hi CursorLine cterm=NONE ctermbg=Gray'
endif
return [hiCursorLine, hi_ul, hi_bg]
! endfunc
! func Check_lcs_eol_attrs(attrs, row, col)
let save_lcs = &lcs
set list
***************
*** 67,73 ****
set nolist
let &lcs = save_lcs
! endfunction
func Test_highlight_eol_with_cursorline()
let [hiCursorLine, hi_ul, hi_bg] = HiCursorLine()
--- 67,73 ----
set nolist
let &lcs = save_lcs
! endfunc
func Test_highlight_eol_with_cursorline()
let [hiCursorLine, hi_ul, hi_bg] = HiCursorLine()
*** ../vim-8.1.0710/src/testdir/test_hlsearch.vim 2018-09-02
15:07:21.977655529 +0200
--- src/testdir/test_hlsearch.vim 2019-01-09 22:36:38.901817415 +0100
***************
*** 1,6 ****
" Test for v:hlsearch
! function! Test_hlsearch()
new
call setline(1, repeat(['aaa'], 10))
set hlsearch nolazyredraw
--- 1,6 ----
" Test for v:hlsearch
! func Test_hlsearch()
new
call setline(1, repeat(['aaa'], 10))
set hlsearch nolazyredraw
***************
*** 30,36 ****
call garbagecollect(1)
call getchar(1)
enew!
! endfunction
func Test_hlsearch_hangs()
if !has('reltime') || !has('float')
--- 30,36 ----
call garbagecollect(1)
call getchar(1)
enew!
! endfunc
func Test_hlsearch_hangs()
if !has('reltime') || !has('float')
*** ../vim-8.1.0710/src/testdir/test_ins_complete.vim 2018-08-08
22:55:38.030420901 +0200
--- src/testdir/test_ins_complete.vim 2019-01-09 22:37:57.473043665 +0100
***************
*** 142,148 ****
delfunc CompleteFunc
endfunc
! function! s:CompleteDone_CompleteFuncDict( findstart, base )
if a:findstart
return 0
endif
--- 142,148 ----
delfunc CompleteFunc
endfunc
! func s:CompleteDone_CompleteFuncDict( findstart, base )
if a:findstart
return 0
endif
***************
*** 159,167 ****
\ }
\ ]
\ }
! endfunction
! function! s:CompleteDone_CheckCompletedItemDict()
call assert_equal( 'aword', v:completed_item[ 'word' ] )
call assert_equal( 'wrd', v:completed_item[ 'abbr' ] )
call assert_equal( 'extra text', v:completed_item[ 'menu' ] )
--- 159,167 ----
\ }
\ ]
\ }
! endfunc
! func s:CompleteDone_CheckCompletedItemDict()
call assert_equal( 'aword', v:completed_item[ 'word' ] )
call assert_equal( 'wrd', v:completed_item[ 'abbr' ] )
call assert_equal( 'extra text', v:completed_item[ 'menu' ] )
***************
*** 170,176 ****
call assert_equal( 'test', v:completed_item[ 'user_data' ] )
let s:called_completedone = 1
! endfunction
function Test_CompleteDoneDict()
au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemDict()
--- 170,176 ----
call assert_equal( 'test', v:completed_item[ 'user_data' ] )
let s:called_completedone = 1
! endfunc
function Test_CompleteDoneDict()
au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemDict()
***************
*** 186,192 ****
au! CompleteDone
endfunc
! function! s:CompleteDone_CompleteFuncDictNoUserData( findstart, base )
if a:findstart
return 0
endif
--- 186,192 ----
au! CompleteDone
endfunc
! func s:CompleteDone_CompleteFuncDictNoUserData( findstart, base )
if a:findstart
return 0
endif
***************
*** 202,210 ****
\ }
\ ]
\ }
! endfunction
! function! s:CompleteDone_CheckCompletedItemDictNoUserData()
call assert_equal( 'aword', v:completed_item[ 'word' ] )
call assert_equal( 'wrd', v:completed_item[ 'abbr' ] )
call assert_equal( 'extra text', v:completed_item[ 'menu' ] )
--- 202,210 ----
\ }
\ ]
\ }
! endfunc
! func s:CompleteDone_CheckCompletedItemDictNoUserData()
call assert_equal( 'aword', v:completed_item[ 'word' ] )
call assert_equal( 'wrd', v:completed_item[ 'abbr' ] )
call assert_equal( 'extra text', v:completed_item[ 'menu' ] )
***************
*** 213,219 ****
call assert_equal( '', v:completed_item[ 'user_data' ] )
let s:called_completedone = 1
! endfunction
function Test_CompleteDoneDictNoUserData()
au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemDictNoUserData()
--- 213,219 ----
call assert_equal( '', v:completed_item[ 'user_data' ] )
let s:called_completedone = 1
! endfunc
function Test_CompleteDoneDictNoUserData()
au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemDictNoUserData()
***************
*** 229,243 ****
au! CompleteDone
endfunc
! function! s:CompleteDone_CompleteFuncList( findstart, base )
if a:findstart
return 0
endif
return [ 'aword' ]
! endfunction
! function! s:CompleteDone_CheckCompletedItemList()
call assert_equal( 'aword', v:completed_item[ 'word' ] )
call assert_equal( '', v:completed_item[ 'abbr' ] )
call assert_equal( '', v:completed_item[ 'menu' ] )
--- 229,243 ----
au! CompleteDone
endfunc
! func s:CompleteDone_CompleteFuncList( findstart, base )
if a:findstart
return 0
endif
return [ 'aword' ]
! endfunc
! func s:CompleteDone_CheckCompletedItemList()
call assert_equal( 'aword', v:completed_item[ 'word' ] )
call assert_equal( '', v:completed_item[ 'abbr' ] )
call assert_equal( '', v:completed_item[ 'menu' ] )
***************
*** 246,252 ****
call assert_equal( '', v:completed_item[ 'user_data' ] )
let s:called_completedone = 1
! endfunction
function Test_CompleteDoneList()
au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemList()
--- 246,252 ----
call assert_equal( '', v:completed_item[ 'user_data' ] )
let s:called_completedone = 1
! endfunc
function Test_CompleteDoneList()
au CompleteDone * :call <SID>CompleteDone_CheckCompletedItemList()
*** ../vim-8.1.0710/src/testdir/test_lambda.vim 2018-05-22 18:31:30.001365739
+0200
--- src/testdir/test_lambda.vim 2019-01-09 22:40:53.407381391 +0100
***************
*** 1,34 ****
" Test for lambda and closure
! function! Test_lambda_feature()
call assert_equal(1, has('lambda'))
! endfunction
! function! Test_lambda_with_filter()
let s:x = 2
call assert_equal([2, 3], filter([1, 2, 3], {i, v -> v >= s:x}))
! endfunction
! function! Test_lambda_with_map()
let s:x = 1
call assert_equal([2, 3, 4], map([1, 2, 3], {i, v -> v + s:x}))
! endfunction
! function! Test_lambda_with_sort()
call assert_equal([1, 2, 3, 4, 7], sort([3,7,2,1,4], {a, b -> a - b}))
! endfunction
! function! Test_lambda_with_timer()
if !has('timers')
return
endif
let s:n = 0
let s:timer_id = 0
! function! s:Foo()
"let n = 0
let s:timer_id = timer_start(50, {-> execute("let s:n += 1 | echo s:n",
"")}, {"repeat": -1})
! endfunction
call s:Foo()
sleep 200ms
--- 1,34 ----
" Test for lambda and closure
! func Test_lambda_feature()
call assert_equal(1, has('lambda'))
! endfunc
! func Test_lambda_with_filter()
let s:x = 2
call assert_equal([2, 3], filter([1, 2, 3], {i, v -> v >= s:x}))
! endfunc
! func Test_lambda_with_map()
let s:x = 1
call assert_equal([2, 3, 4], map([1, 2, 3], {i, v -> v + s:x}))
! endfunc
! func Test_lambda_with_sort()
call assert_equal([1, 2, 3, 4, 7], sort([3,7,2,1,4], {a, b -> a - b}))
! endfunc
! func Test_lambda_with_timer()
if !has('timers')
return
endif
let s:n = 0
let s:timer_id = 0
! func! s:Foo()
"let n = 0
let s:timer_id = timer_start(50, {-> execute("let s:n += 1 | echo s:n",
"")}, {"repeat": -1})
! endfunc
call s:Foo()
sleep 200ms
***************
*** 40,51 ****
call assert_true(m > 1)
call assert_true(s:n > m + 1)
call assert_true(s:n < 9)
! endfunction
! function! Test_lambda_with_partial()
let l:Cb = function({... -> ['zero', a:1, a:2, a:3]}, ['one', 'two'])
call assert_equal(['zero', 'one', 'two', 'three'], l:Cb('three'))
! endfunction
function Test_lambda_fails()
call assert_equal(3, {a, b -> a + b}(1, 2))
--- 40,51 ----
call assert_true(m > 1)
call assert_true(s:n > m + 1)
call assert_true(s:n < 9)
! endfunc
! func Test_lambda_with_partial()
let l:Cb = function({... -> ['zero', a:1, a:2, a:3]}, ['one', 'two'])
call assert_equal(['zero', 'one', 'two', 'three'], l:Cb('three'))
! endfunc
function Test_lambda_fails()
call assert_equal(3, {a, b -> a + b}(1, 2))
***************
*** 58,116 ****
call assert_equal('foo', x['>'])
endfunc
! function! Test_lambda_capture_by_reference()
let v = 1
let l:F = {x -> x + v}
let v = 2
call assert_equal(12, l:F(10))
! endfunction
! function! Test_lambda_side_effect()
! function! s:update_and_return(arr)
let a:arr[1] = 5
return a:arr
! endfunction
! function! s:foo(arr)
return {-> s:update_and_return(a:arr)}
! endfunction
let arr = [3,2,1]
call assert_equal([3, 5, 1], s:foo(arr)())
! endfunction
! function! Test_lambda_refer_local_variable_from_other_scope()
! function! s:foo(X)
return a:X() " refer l:x in s:bar()
! endfunction
! function! s:bar()
let x = 123
return s:foo({-> x})
! endfunction
call assert_equal(123, s:bar())
! endfunction
! function! Test_lambda_do_not_share_local_variable()
! function! s:define_funcs()
let l:One = {-> split(execute("let a = 'abc' | echo a"))[0]}
let l:Two = {-> exists("a") ? a : "no"}
return [l:One, l:Two]
! endfunction
let l:F = s:define_funcs()
call assert_equal('no', l:F[1]())
call assert_equal('abc', l:F[0]())
call assert_equal('no', l:F[1]())
! endfunction
! function! Test_lambda_closure_counter()
! function! s:foo()
let x = 0
return {-> [execute("let x += 1"), x][-1]}
! endfunction
let l:F = s:foo()
call test_garbagecollect_now()
--- 58,116 ----
call assert_equal('foo', x['>'])
endfunc
! func Test_lambda_capture_by_reference()
let v = 1
let l:F = {x -> x + v}
let v = 2
call assert_equal(12, l:F(10))
! endfunc
! func Test_lambda_side_effect()
! func! s:update_and_return(arr)
let a:arr[1] = 5
return a:arr
! endfunc
! func! s:foo(arr)
return {-> s:update_and_return(a:arr)}
! endfunc
let arr = [3,2,1]
call assert_equal([3, 5, 1], s:foo(arr)())
! endfunc
! func Test_lambda_refer_local_variable_from_other_scope()
! func! s:foo(X)
return a:X() " refer l:x in s:bar()
! endfunc
! func! s:bar()
let x = 123
return s:foo({-> x})
! endfunc
call assert_equal(123, s:bar())
! endfunc
! func Test_lambda_do_not_share_local_variable()
! func! s:define_funcs()
let l:One = {-> split(execute("let a = 'abc' | echo a"))[0]}
let l:Two = {-> exists("a") ? a : "no"}
return [l:One, l:Two]
! endfunc
let l:F = s:define_funcs()
call assert_equal('no', l:F[1]())
call assert_equal('abc', l:F[0]())
call assert_equal('no', l:F[1]())
! endfunc
! func Test_lambda_closure_counter()
! func! s:foo()
let x = 0
return {-> [execute("let x += 1"), x][-1]}
! endfunc
let l:F = s:foo()
call test_garbagecollect_now()
***************
*** 118,169 ****
call assert_equal(2, l:F())
call assert_equal(3, l:F())
call assert_equal(4, l:F())
! endfunction
! function! Test_lambda_with_a_var()
! function! s:foo()
let x = 2
return {... -> a:000 + [x]}
! endfunction
! function! s:bar()
return s:foo()(1)
! endfunction
call assert_equal([1, 2], s:bar())
! endfunction
! function! Test_lambda_call_lambda_from_lambda()
! function! s:foo(x)
let l:F1 = {-> {-> a:x}}
return {-> l:F1()}
! endfunction
let l:F = s:foo(1)
call assert_equal(1, l:F()())
! endfunction
! function! Test_lambda_delfunc()
! function! s:gen()
let pl = l:
let l:Foo = {-> get(pl, "Foo", get(pl, "Bar", {-> 0}))}
let l:Bar = l:Foo
delfunction l:Foo
return l:Bar
! endfunction
let l:F = s:gen()
call assert_fails(':call l:F()', 'E933:')
! endfunction
! function! Test_lambda_scope()
! function! s:NewCounter()
let c = 0
return {-> [execute('let c += 1'), c][-1]}
! endfunction
! function! s:NewCounter2()
return {-> [execute('let c += 100'), c][-1]}
! endfunction
let l:C = s:NewCounter()
let l:D = s:NewCounter2()
--- 118,169 ----
call assert_equal(2, l:F())
call assert_equal(3, l:F())
call assert_equal(4, l:F())
! endfunc
! func Test_lambda_with_a_var()
! func! s:foo()
let x = 2
return {... -> a:000 + [x]}
! endfunc
! func! s:bar()
return s:foo()(1)
! endfunc
call assert_equal([1, 2], s:bar())
! endfunc
! func Test_lambda_call_lambda_from_lambda()
! func! s:foo(x)
let l:F1 = {-> {-> a:x}}
return {-> l:F1()}
! endfunc
let l:F = s:foo(1)
call assert_equal(1, l:F()())
! endfunc
! func Test_lambda_delfunc()
! func! s:gen()
let pl = l:
let l:Foo = {-> get(pl, "Foo", get(pl, "Bar", {-> 0}))}
let l:Bar = l:Foo
delfunction l:Foo
return l:Bar
! endfunc
let l:F = s:gen()
call assert_fails(':call l:F()', 'E933:')
! endfunc
! func Test_lambda_scope()
! func! s:NewCounter()
let c = 0
return {-> [execute('let c += 1'), c][-1]}
! endfunc
! func! s:NewCounter2()
return {-> [execute('let c += 100'), c][-1]}
! endfunc
let l:C = s:NewCounter()
let l:D = s:NewCounter2()
***************
*** 171,207 ****
call assert_equal(1, l:C())
call assert_fails(':call l:D()', 'E15:') " E121: then E15:
call assert_equal(2, l:C())
! endfunction
! function! Test_lambda_share_scope()
! function! s:New()
let c = 0
let l:Inc0 = {-> [execute('let c += 1'), c][-1]}
let l:Dec0 = {-> [execute('let c -= 1'), c][-1]}
return [l:Inc0, l:Dec0]
! endfunction
let [l:Inc, l:Dec] = s:New()
call assert_equal(1, l:Inc())
call assert_equal(2, l:Inc())
call assert_equal(1, l:Dec())
! endfunction
! function! Test_lambda_circular_reference()
! function! s:Foo()
let d = {}
let d.f = {-> d}
return d.f
! endfunction
call s:Foo()
call test_garbagecollect_now()
let i = 0 | while i < 10000 | call s:Foo() | let i+= 1 | endwhile
call test_garbagecollect_now()
! endfunction
! function! Test_lambda_combination()
call assert_equal(2, {x -> {x -> x}}(1)(2))
call assert_equal(10, {y -> {x -> x(y)(10)}({y -> y})}({z -> z}))
call assert_equal(5.0, {x -> {y -> x / y}}(10)(2.0))
--- 171,207 ----
call assert_equal(1, l:C())
call assert_fails(':call l:D()', 'E15:') " E121: then E15:
call assert_equal(2, l:C())
! endfunc
! func Test_lambda_share_scope()
! func! s:New()
let c = 0
let l:Inc0 = {-> [execute('let c += 1'), c][-1]}
let l:Dec0 = {-> [execute('let c -= 1'), c][-1]}
return [l:Inc0, l:Dec0]
! endfunc
let [l:Inc, l:Dec] = s:New()
call assert_equal(1, l:Inc())
call assert_equal(2, l:Inc())
call assert_equal(1, l:Dec())
! endfunc
! func Test_lambda_circular_reference()
! func! s:Foo()
let d = {}
let d.f = {-> d}
return d.f
! endfunc
call s:Foo()
call test_garbagecollect_now()
let i = 0 | while i < 10000 | call s:Foo() | let i+= 1 | endwhile
call test_garbagecollect_now()
! endfunc
! func Test_lambda_combination()
call assert_equal(2, {x -> {x -> x}}(1)(2))
call assert_equal(10, {y -> {x -> x(y)(10)}({y -> y})}({z -> z}))
call assert_equal(5.0, {x -> {y -> x / y}}(10)(2.0))
***************
*** 214,230 ****
let Z = {f -> {x -> f({y -> x(x)(y)})}({x -> f({y -> x(x)(y)})})}
let Fact = {f -> {x -> x == 0 ? 1 : x * f(x - 1)}}
call assert_equal(120, Z(Fact)(5))
! endfunction
! function! Test_closure_counter()
! function! s:foo()
let x = 0
! function! s:bar() closure
let x += 1
return x
! endfunction
return function('s:bar')
! endfunction
let l:F = s:foo()
call test_garbagecollect_now()
--- 214,230 ----
let Z = {f -> {x -> f({y -> x(x)(y)})}({x -> f({y -> x(x)(y)})})}
let Fact = {f -> {x -> x == 0 ? 1 : x * f(x - 1)}}
call assert_equal(120, Z(Fact)(5))
! endfunc
! func Test_closure_counter()
! func! s:foo()
let x = 0
! func! s:bar() closure
let x += 1
return x
! endfunc
return function('s:bar')
! endfunc
let l:F = s:foo()
call test_garbagecollect_now()
***************
*** 232,261 ****
call assert_equal(2, l:F())
call assert_equal(3, l:F())
call assert_equal(4, l:F())
! endfunction
! function! Test_closure_unlet()
! function! s:foo()
let x = 1
! function! s:bar() closure
unlet x
! endfunction
call s:bar()
return l:
! endfunction
call assert_false(has_key(s:foo(), 'x'))
call test_garbagecollect_now()
! endfunction
! function! LambdaFoo()
let x = 0
! function! LambdaBar() closure
let x += 1
return x
! endfunction
return function('LambdaBar')
! endfunction
func Test_closure_refcount()
let g:Count = LambdaFoo()
--- 232,261 ----
call assert_equal(2, l:F())
call assert_equal(3, l:F())
call assert_equal(4, l:F())
! endfunc
! func Test_closure_unlet()
! func! s:foo()
let x = 1
! func! s:bar() closure
unlet x
! endfunc
call s:bar()
return l:
! endfunc
call assert_false(has_key(s:foo(), 'x'))
call test_garbagecollect_now()
! endfunc
! func LambdaFoo()
let x = 0
! func! LambdaBar() closure
let x += 1
return x
! endfunc
return function('LambdaBar')
! endfunc
func Test_closure_refcount()
let g:Count = LambdaFoo()
*** ../vim-8.1.0710/src/testdir/test_listdict.vim 2018-09-30
17:16:22.199142095 +0200
--- src/testdir/test_listdict.vim 2019-01-09 22:55:10.776013666 +0100
***************
*** 499,517 ****
endfunc
" No remove() of write-protected scope-level variable
! func! Tfunc(this_is_a_long_parameter_name)
call assert_fails("call remove(a:, 'this_is_a_long_parameter_name')",
'E795')
! endfun
func Test_dict_scope_var_remove()
! call Tfunc('testval')
endfunc
" No extend() of write-protected scope-level variable
! func! Tfunc(this_is_a_long_parameter_name)
call assert_fails("call extend(a:, {'this_is_a_long_parameter_name':
1234})", 'E742')
endfunc
func Test_dict_scope_var_extend()
! call Tfunc('testval')
endfunc
" No :unlet of variable in locked scope
--- 499,517 ----
endfunc
" No remove() of write-protected scope-level variable
! func Tfunc1(this_is_a_long_parameter_name)
call assert_fails("call remove(a:, 'this_is_a_long_parameter_name')",
'E795')
! endfunc
func Test_dict_scope_var_remove()
! call Tfunc1('testval')
endfunc
" No extend() of write-protected scope-level variable
! func Tfunc2(this_is_a_long_parameter_name)
call assert_fails("call extend(a:, {'this_is_a_long_parameter_name':
1234})", 'E742')
endfunc
func Test_dict_scope_var_extend()
! call Tfunc2('testval')
endfunc
" No :unlet of variable in locked scope
*** ../vim-8.1.0710/src/testdir/test_listlbr.vim 2017-03-01
17:12:54.000000000 +0100
--- src/testdir/test_listlbr.vim 2019-01-09 22:41:37.282979294 +0100
***************
*** 13,21 ****
return ScreenLines(a:lnum, a:width)
endfunction
! function! s:compare_lines(expect, actual)
call assert_equal(join(a:expect, "\n"), join(a:actual, "\n"))
! endfunction
function s:test_windows(...)
call NewWindow(10, 20)
--- 13,21 ----
return ScreenLines(a:lnum, a:width)
endfunction
! func s:compare_lines(expect, actual)
call assert_equal(join(a:expect, "\n"), join(a:actual, "\n"))
! endfunc
function s:test_windows(...)
call NewWindow(10, 20)
*** ../vim-8.1.0710/src/testdir/test_listlbr_utf8.vim 2017-06-25
17:52:58.000000000 +0200
--- src/testdir/test_listlbr_utf8.vim 2019-01-09 22:42:04.510731883 +0100
***************
*** 9,23 ****
source view_util.vim
! function s:screen_lines(lnum, width) abort
return ScreenLines(a:lnum, a:width)
! endfunction
! function! s:compare_lines(expect, actual)
call assert_equal(a:expect, a:actual)
! endfunction
! function s:screen_attr(lnum, chars, ...) abort
let line = getline(a:lnum)
let attr = []
let prefix = get(a:000, 0, 0)
--- 9,23 ----
source view_util.vim
! func s:screen_lines(lnum, width) abort
return ScreenLines(a:lnum, a:width)
! endfunc
! func s:compare_lines(expect, actual)
call assert_equal(a:expect, a:actual)
! endfunc
! func s:screen_attr(lnum, chars, ...) abort
let line = getline(a:lnum)
let attr = []
let prefix = get(a:000, 0, 0)
***************
*** 26,43 ****
let attr += [screenattr(a:lnum, scol + prefix)]
endfor
return attr
! endfunction
! function s:test_windows(...)
call NewWindow(10, 20)
setl ts=4 sw=4 sts=4 linebreak sbr=+ wrap
exe get(a:000, 0, '')
! endfunction
! function s:close_windows(...)
call CloseWindow()
exe get(a:000, 0, '')
! endfunction
func Test_linebreak_with_fancy_listchars()
call s:test_windows("setl list
listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6")
--- 26,43 ----
let attr += [screenattr(a:lnum, scol + prefix)]
endfor
return attr
! endfunc
! func s:test_windows(...)
call NewWindow(10, 20)
setl ts=4 sw=4 sts=4 linebreak sbr=+ wrap
exe get(a:000, 0, '')
! endfunc
! func s:close_windows(...)
call CloseWindow()
exe get(a:000, 0, '')
! endfunc
func Test_linebreak_with_fancy_listchars()
call s:test_windows("setl list
listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6")
*** ../vim-8.1.0710/src/testdir/test_marks.vim 2018-07-10 15:22:28.710142328
+0200
--- src/testdir/test_marks.vim 2019-01-09 22:42:25.030546439 +0100
***************
*** 1,6 ****
" Test that a deleted mark is restored after delete-undo-redo-undo.
! function! Test_Restore_DelMark()
enew!
call append(0, [" textline A", " textline B", " textline C"])
normal! 2gg
--- 1,6 ----
" Test that a deleted mark is restored after delete-undo-redo-undo.
! func Test_Restore_DelMark()
enew!
call append(0, [" textline A", " textline B", " textline C"])
normal! 2gg
***************
*** 11,20 ****
call assert_equal(2, pos[1])
call assert_equal(1, pos[2])
enew!
! endfunction
" Test that CTRL-A and CTRL-X updates last changed mark '[, '].
! function! Test_Incr_Marks()
enew!
call append(0, ["123 123 123", "123 123 123", "123 123 123"])
normal! gg
--- 11,20 ----
call assert_equal(2, pos[1])
call assert_equal(1, pos[2])
enew!
! endfunc
" Test that CTRL-A and CTRL-X updates last changed mark '[, '].
! func Test_Incr_Marks()
enew!
call append(0, ["123 123 123", "123 123 123", "123 123 123"])
normal! gg
***************
*** 23,29 ****
call assert_equal("123 XXXXXXX", getline(2))
call assert_equal("XXX 123 123", getline(3))
enew!
! endfunction
func Test_setpos()
new one
--- 23,29 ----
call assert_equal("123 XXXXXXX", getline(2))
call assert_equal("XXX 123 123", getline(3))
enew!
! endfunc
func Test_setpos()
new one
*** ../vim-8.1.0710/src/testdir/test_matchadd_conceal.vim 2018-02-27
20:11:53.000000000 +0100
--- src/testdir/test_matchadd_conceal.vim 2019-01-09 22:43:19.454058524
+0100
***************
*** 9,15 ****
source shared.vim
! function! Test_simple_matchadd()
new
1put='# This is a Test'
--- 9,15 ----
source shared.vim
! func Test_simple_matchadd()
new
1put='# This is a Test'
***************
*** 29,37 ****
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
quit!
! endfunction
! function! Test_simple_matchadd_and_conceal()
new
setlocal concealcursor=n conceallevel=1
--- 29,37 ----
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
quit!
! endfunc
! func Test_simple_matchadd_and_conceal()
new
setlocal concealcursor=n conceallevel=1
***************
*** 51,59 ****
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
quit!
! endfunction
! function! Test_matchadd_and_conceallevel_3()
new
setlocal conceallevel=3
--- 51,59 ----
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
quit!
! endfunc
! func Test_matchadd_and_conceallevel_3()
new
setlocal conceallevel=3
***************
*** 92,100 ****
syntax off
quit!
! endfunction
! function! Test_default_conceal_char()
new
setlocal concealcursor=n conceallevel=1
--- 92,100 ----
syntax off
quit!
! endfunc
! func Test_default_conceal_char()
new
setlocal concealcursor=n conceallevel=1
***************
*** 128,136 ****
let &listchars = listchars_save
quit!
! endfunction
! function! Test_syn_and_match_conceal()
new
setlocal concealcursor=n conceallevel=1
--- 128,136 ----
let &listchars = listchars_save
quit!
! endfunc
! func Test_syn_and_match_conceal()
new
setlocal concealcursor=n conceallevel=1
***************
*** 164,172 ****
syntax off
quit!
! endfunction
! function! Test_clearmatches()
new
setlocal concealcursor=n conceallevel=1
--- 164,172 ----
syntax off
quit!
! endfunc
! func Test_clearmatches()
new
setlocal concealcursor=n conceallevel=1
***************
*** 203,211 ****
call assert_equal({'group': 'Conceal', 'pattern': '\%2l ', 'priority': 10,
'id': a[0].id, 'conceal': 'Z'}, a[0])
quit!
! endfunction
! function! Test_using_matchaddpos()
new
setlocal concealcursor=n conceallevel=1
" set filetype and :syntax on to change screenattr()
--- 203,211 ----
call assert_equal({'group': 'Conceal', 'pattern': '\%2l ', 'priority': 10,
'id': a[0].id, 'conceal': 'Z'}, a[0])
quit!
! endfunc
! func Test_using_matchaddpos()
new
setlocal concealcursor=n conceallevel=1
" set filetype and :syntax on to change screenattr()
***************
*** 234,242 ****
syntax off
quit!
! endfunction
! function! Test_matchadd_repeat_conceal_with_syntax_off()
new
" To test targets in the same line string is replaced with conceal char
--- 234,242 ----
syntax off
quit!
! endfunc
! func Test_matchadd_repeat_conceal_with_syntax_off()
new
" To test targets in the same line string is replaced with conceal char
***************
*** 253,261 ****
call assert_equal('t_tt', Screenline(2))
quit!
! endfunction
! function! Test_matchadd_and_syn_conceal()
new
let cnt='Inductive bool : Type := | true : bool | false : bool.'
let expect = 'Inductive - : Type := | true : - | false : -.'
--- 253,261 ----
call assert_equal('t_tt', Screenline(2))
quit!
! endfunc
! func Test_matchadd_and_syn_conceal()
new
let cnt='Inductive bool : Type := | true : bool | false : bool.'
let expect = 'Inductive - : Type := | true : - | false : -.'
***************
*** 276,279 ****
call assert_notequal(screenattr(1, 10) , screenattr(1, 11))
call assert_notequal(screenattr(1, 11) , screenattr(1, 12))
call assert_equal(screenattr(1, 11) , screenattr(1, 32))
! endfunction
--- 276,279 ----
call assert_notequal(screenattr(1, 10) , screenattr(1, 11))
call assert_notequal(screenattr(1, 11) , screenattr(1, 12))
call assert_equal(screenattr(1, 11) , screenattr(1, 32))
! endfunc
*** ../vim-8.1.0710/src/testdir/test_matchadd_conceal_utf8.vim 2016-07-21
20:10:48.000000000 +0200
--- src/testdir/test_matchadd_conceal_utf8.vim 2019-01-09 22:43:42.721851560
+0100
***************
*** 7,25 ****
set term=ansi
endif
! function! s:screenline(lnum) abort
let line = []
for c in range(1, winwidth(0))
call add(line, nr2char(screenchar(a:lnum, c)))
endfor
return s:trim(join(line, ''))
! endfunction
! function! s:trim(str) abort
return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
! endfunction
! function! Test_match_using_multibyte_conceal_char()
new
setlocal concealcursor=n conceallevel=1
--- 7,25 ----
set term=ansi
endif
! func s:screenline(lnum) abort
let line = []
for c in range(1, winwidth(0))
call add(line, nr2char(screenchar(a:lnum, c)))
endfor
return s:trim(join(line, ''))
! endfunc
! func s:trim(str) abort
return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
! endfunc
! func Test_match_using_multibyte_conceal_char()
new
setlocal concealcursor=n conceallevel=1
***************
*** 40,43 ****
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
quit!
! endfunction
--- 40,43 ----
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
quit!
! endfunc
*** ../vim-8.1.0710/src/testdir/test_messages.vim 2018-12-22
13:27:59.119503967 +0100
--- src/testdir/test_messages.vim 2019-01-09 22:44:04.793656085 +0100
***************
*** 43,49 ****
" indicator (e.g., "-- INSERT --") when ":stopinsert" is invoked. Message
" output could then be disturbed when 'cmdheight' was greater than one.
" This test ensures that the bugfix for this issue remains in place.
! function! Test_stopinsert_does_not_break_message_output()
set cmdheight=2
redraw!
--- 43,49 ----
" indicator (e.g., "-- INSERT --") when ":stopinsert" is invoked. Message
" output could then be disturbed when 'cmdheight' was greater than one.
" This test ensures that the bugfix for this issue remains in place.
! func Test_stopinsert_does_not_break_message_output()
set cmdheight=2
redraw!
***************
*** 58,64 ****
redraw!
set cmdheight&
! endfunction
func Test_message_completion()
call feedkeys(":message \<C-A>\<C-B>\"\<CR>", 'tx')
--- 58,64 ----
redraw!
set cmdheight&
! endfunc
func Test_message_completion()
call feedkeys(":message \<C-A>\<C-B>\"\<CR>", 'tx')
*** ../vim-8.1.0710/src/testdir/test_number.vim 2017-02-23 18:23:28.000000000
+0100
--- src/testdir/test_number.vim 2019-01-09 22:44:44.669304914 +0100
***************
*** 2,24 ****
source view_util.vim
! func! s:screen_lines(start, end) abort
return ScreenLines([a:start, a:end], 8)
endfunc
! func! s:compare_lines(expect, actual)
call assert_equal(a:expect, a:actual)
endfunc
! func! s:test_windows(h, w) abort
call NewWindow(a:h, a:w)
endfunc
! func! s:close_windows() abort
call CloseWindow()
endfunc
! func! s:validate_cursor() abort
" update skipcol.
" wincol():
" f_wincol
--- 2,24 ----
source view_util.vim
! func s:screen_lines(start, end) abort
return ScreenLines([a:start, a:end], 8)
endfunc
! func s:compare_lines(expect, actual)
call assert_equal(a:expect, a:actual)
endfunc
! func s:test_windows(h, w) abort
call NewWindow(a:h, a:w)
endfunc
! func s:close_windows() abort
call CloseWindow()
endfunc
! func s:validate_cursor() abort
" update skipcol.
" wincol():
" f_wincol
*** ../vim-8.1.0710/src/testdir/test_options.vim 2018-10-02
15:06:36.761478333 +0200
--- src/testdir/test_options.vim 2019-01-09 22:45:10.113082099 +0100
***************
*** 1,6 ****
" Test for options
! function! Test_whichwrap()
set whichwrap=b,s
call assert_equal('b,s', &whichwrap)
--- 1,6 ----
" Test for options
! func Test_whichwrap()
set whichwrap=b,s
call assert_equal('b,s', &whichwrap)
***************
*** 20,35 ****
call assert_equal('h', &whichwrap)
set whichwrap&
! endfunction
! function! Test_isfname()
" This used to cause Vim to access uninitialized memory.
set isfname=
call assert_equal("~X", expand("~X"))
set isfname&
! endfunction
! function Test_wildchar()
" Empty 'wildchar' used to access invalid memory.
call assert_fails('set wildchar=', 'E521:')
call assert_fails('set wildchar=abc', 'E521:')
--- 20,35 ----
call assert_equal('h', &whichwrap)
set whichwrap&
! endfunc
! func Test_isfname()
" This used to cause Vim to access uninitialized memory.
set isfname=
call assert_equal("~X", expand("~X"))
set isfname&
! endfunc
! func Test_wildchar()
" Empty 'wildchar' used to access invalid memory.
call assert_fails('set wildchar=', 'E521:')
call assert_fails('set wildchar=abc', 'E521:')
***************
*** 40,48 ****
let a=execute('set wildchar?')
call assert_equal("\n wildchar=<Esc>", a)
set wildchar&
! endfunction
! function Test_options()
let caught = 'ok'
try
options
--- 40,48 ----
let a=execute('set wildchar?')
call assert_equal("\n wildchar=<Esc>", a)
set wildchar&
! endfunc
! func Test_options()
let caught = 'ok'
try
options
***************
*** 53,61 ****
" close option-window
close
! endfunction
! function Test_path_keep_commas()
" Test that changing 'path' keeps two commas.
set path=foo,,bar
set path-=bar
--- 53,61 ----
" close option-window
close
! endfunc
! func Test_path_keep_commas()
" Test that changing 'path' keeps two commas.
set path=foo,,bar
set path-=bar
***************
*** 63,69 ****
call assert_equal('foo,,bar', &path)
set path&
! endfunction
func Test_signcolumn()
if has('signs')
--- 63,69 ----
call assert_equal('foo,,bar', &path)
set path&
! endfunc
func Test_signcolumn()
if has('signs')
*** ../vim-8.1.0710/src/testdir/test_partial.vim 2016-08-11
22:46:37.000000000 +0200
--- src/testdir/test_partial.vim 2019-01-09 22:45:36.684850393 +0100
***************
*** 114,122 ****
call OuterCall()
endfunc
! function! s:cache_clear() dict
return self.name
! endfunction
func Test_script_function_in_dict()
let s:obj = {'name': 'foo'}
--- 114,122 ----
call OuterCall()
endfunc
! func s:cache_clear() dict
return self.name
! endfunc
func Test_script_function_in_dict()
let s:obj = {'name': 'foo'}
***************
*** 136,145 ****
call assert_equal('bar', B())
endfunc
! function! s:cache_arg(arg) dict
let s:result = self.name . '/' . a:arg
return s:result
! endfunction
func Test_script_function_in_dict_arg()
let s:obj = {'name': 'foo'}
--- 136,145 ----
call assert_equal('bar', B())
endfunc
! func s:cache_arg(arg) dict
let s:result = self.name . '/' . a:arg
return s:result
! endfunc
func Test_script_function_in_dict_arg()
let s:obj = {'name': 'foo'}
*** ../vim-8.1.0710/src/testdir/test_smartindent.vim 2017-08-03
17:53:54.000000000 +0200
--- src/testdir/test_smartindent.vim 2019-01-09 22:46:34.496349516 +0100
***************
*** 1,24 ****
" Tests for smartindent
" Tests for not doing smart indenting when it isn't set.
! function! Test_nosmartindent()
new
call append(0, [" some test text",
! \ " test text",
! \ "test text",
! \ " test text"])
set nocindent nosmartindent autoindent
exe "normal! gg/some\<CR>"
exe "normal! 2cc#test\<Esc>"
call assert_equal(" #test", getline(1))
enew! | close
! endfunction
! function MyIndent()
! endfunction
" When 'indentexpr' is set, setting 'si' has no effect.
! function Test_smartindent_has_no_effect()
new
exe "normal! i\<Tab>one\<Esc>"
set noautoindent
--- 1,24 ----
" Tests for smartindent
" Tests for not doing smart indenting when it isn't set.
! func Test_nosmartindent()
new
call append(0, [" some test text",
! \ " test text",
! \ "test text",
! \ " test text"])
set nocindent nosmartindent autoindent
exe "normal! gg/some\<CR>"
exe "normal! 2cc#test\<Esc>"
call assert_equal(" #test", getline(1))
enew! | close
! endfunc
! func MyIndent()
! endfunc
" When 'indentexpr' is set, setting 'si' has no effect.
! func Test_smartindent_has_no_effect()
new
exe "normal! i\<Tab>one\<Esc>"
set noautoindent
***************
*** 36,41 ****
set smartindent&
set indentexpr&
bwipe!
! endfunction
" vim: shiftwidth=2 sts=2 expandtab
--- 36,41 ----
set smartindent&
set indentexpr&
bwipe!
! endfunc
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.1.0710/src/testdir/test_substitute.vim 2017-10-26
19:57:28.000000000 +0200
--- src/testdir/test_substitute.vim 2019-01-09 22:47:00.292127354 +0100
***************
*** 1,6 ****
" Tests for multi-line regexps with ":s".
! function! Test_multiline_subst()
enew!
call append(0, ["1 aa",
\ "bb",
--- 1,6 ----
" Tests for multi-line regexps with ":s".
! func Test_multiline_subst()
enew!
call append(0, ["1 aa",
\ "bb",
***************
*** 38,46 ****
call assert_equal('7x7f', getline(12))
call assert_equal('xxxxx', getline(13))
enew!
! endfunction
! function! Test_substitute_variants()
" Validate that all the 2-/3-letter variants which embed the flags into the
" command name actually work.
enew!
--- 38,46 ----
call assert_equal('7x7f', getline(12))
call assert_equal('xxxxx', getline(13))
enew!
! endfunc
! func Test_substitute_variants()
" Validate that all the 2-/3-letter variants which embed the flags into the
" command name actually work.
enew!
***************
*** 105,111 ****
call assert_equal(var.exp, getline('.'), msg)
endfor
endfor
! endfunction
func Test_substitute_repeat()
" This caused an invalid memory access.
--- 105,111 ----
call assert_equal(var.exp, getline('.'), msg)
endfor
endfor
! endfunc
func Test_substitute_repeat()
" This caused an invalid memory access.
***************
*** 401,409 ****
" List entry format: [input, cmd, output]
let tests = [ ['aAa', "s/A/\\=substitute(submatch(0), '.', '\\', '')/",
! \ ['a\a']],
\ ['bBb', "s/B/\\=substitute(submatch(0), '.', '\\', '')/",
! \ ['b\b']],
\ ['cCc', "s/C/\\=substitute(submatch(0), '.', '\<C-V>\<C-M>',
'')/",
\ ["c\<C-V>", 'c']],
\ ['dDd', "s/D/\\=substitute(submatch(0), '.', '\\\<C-V>\<C-M>',
'')/",
--- 401,409 ----
" List entry format: [input, cmd, output]
let tests = [ ['aAa', "s/A/\\=substitute(submatch(0), '.', '\\', '')/",
! \ ['a\a']],
\ ['bBb', "s/B/\\=substitute(submatch(0), '.', '\\', '')/",
! \ ['b\b']],
\ ['cCc', "s/C/\\=substitute(submatch(0), '.', '\<C-V>\<C-M>',
'')/",
\ ["c\<C-V>", 'c']],
\ ['dDd', "s/D/\\=substitute(submatch(0), '.', '\\\<C-V>\<C-M>',
'')/",
*** ../vim-8.1.0710/src/testdir/test_system.vim 2017-12-20 22:05:10.000000000
+0100
--- src/testdir/test_system.vim 2019-01-09 22:47:27.771891532 +0100
***************
*** 1,6 ****
" Tests for system() and systemlist()
! function! Test_System()
if !executable('echo') || !executable('cat') || !executable('wc')
return
endif
--- 1,6 ----
" Tests for system() and systemlist()
! func Test_System()
if !executable('echo') || !executable('cat') || !executable('wc')
return
endif
***************
*** 45,53 ****
bwipe!
call assert_fails('call system("wc -l", 99999)', 'E86:')
! endfunction
! function! Test_system_exmode()
if has('unix') " echo $? only works on Unix
let cmd = ' -es -u NONE -c "source Xscript" +q; echo "result=$?"'
" Need to put this in a script, "catch" isn't found after an unknown
--- 45,53 ----
bwipe!
call assert_fails('call system("wc -l", 99999)', 'E86:')
! endfunc
! func Test_system_exmode()
if has('unix') " echo $? only works on Unix
let cmd = ' -es -u NONE -c "source Xscript" +q; echo "result=$?"'
" Need to put this in a script, "catch" isn't found after an unknown
*** ../vim-8.1.0710/src/testdir/test_terminal.vim 2018-12-24
19:15:15.551304134 +0100
--- src/testdir/test_terminal.vim 2019-01-09 22:47:35.611824406 +0100
***************
*** 122,128 ****
unlet g:job
endfunc
! func! s:Nasty_exit_cb(job, st)
exe g:buf . 'bwipe!'
let g:buf = 0
endfunc
--- 122,128 ----
unlet g:job
endfunc
! func s:Nasty_exit_cb(job, st)
exe g:buf . 'bwipe!'
let g:buf = 0
endfunc
***************
*** 1727,1729 ****
--- 1727,1753 ----
let term = term_start('false', {'term_finish': 'close'})
call WaitForAssert({-> assert_equal(v:null, term_getjob(term)) })
endfunc
+
+ func Test_term_gettitle()
+ if !has('title') || empty(&t_ts)
+ return
+ endif
+ " TODO: this fails on Travis
+ return
+
+ " term_gettitle() returns an empty string for a non-terminal buffer
+ " or for a non-existing buffer.
+ call assert_equal('', term_gettitle(bufnr('%')))
+ call assert_equal('', term_gettitle(bufnr('$') + 1))
+
+ let term = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile'])
+ call WaitForAssert({-> assert_equal('[No Name] - VIM', term_gettitle(term))
})
+
+ call term_sendkeys(term, ":e Xfoo\r")
+ call WaitForAssert({-> assert_match('Xfoo (.*[/\\]testdir) - VIM',
term_gettitle(term)) })
+
+ call term_sendkeys(term, ":set titlestring=foo\r")
+ call WaitForAssert({-> assert_equal('foo', term_gettitle(term)) })
+
+ exe term . 'bwipe!'
+ endfunc
*** ../vim-8.1.0710/src/testdir/test_textobjects.vim 2018-08-16
21:37:46.389318767 +0200
--- src/testdir/test_textobjects.vim 2019-01-09 22:47:49.067709349 +0100
***************
*** 236,242 ****
%delete _
endfunc
! func! Test_sentence_with_cursor_on_delimiter()
enew!
call setline(1, "A '([sentence.])' A sentence.")
--- 236,242 ----
%delete _
endfunc
! func Test_sentence_with_cursor_on_delimiter()
enew!
call setline(1, "A '([sentence.])' A sentence.")
*** ../vim-8.1.0710/src/testdir/test_utf8.vim 2017-03-18 22:49:29.000000000
+0100
--- src/testdir/test_utf8.vim 2019-01-09 22:48:16.191477993 +0100
***************
*** 25,41 ****
endfunc
" Test for customlist completion
! function! CustomComplete1(lead, line, pos)
return ['あ', 'い']
! endfunction
! function! CustomComplete2(lead, line, pos)
return ['あたし', 'あたま', 'あたりめ']
! endfunction
! function! CustomComplete3(lead, line, pos)
return ['Nこ', 'Nん', 'Nぶ']
! endfunction
func Test_customlist_completion()
command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
--- 25,41 ----
endfunc
" Test for customlist completion
! func CustomComplete1(lead, line, pos)
return ['あ', 'い']
! endfunc
! func CustomComplete2(lead, line, pos)
return ['あたし', 'あたま', 'あたりめ']
! endfunc
! func CustomComplete3(lead, line, pos)
return ['Nこ', 'Nん', 'Nぶ']
! endfunc
func Test_customlist_completion()
command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
*** ../vim-8.1.0710/src/testdir/test_utf8_comparisons.vim 2017-06-27
18:20:28.000000000 +0200
--- src/testdir/test_utf8_comparisons.vim 2019-01-09 22:48:57.287128840
+0100
***************
*** 5,16 ****
finish
endif
! function! Ch(a, op, b, expected)
call assert_equal(eval(printf('"%s" %s "%s"', a:a, a:op, a:b)), a:expected,
\ printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
! endfunction
! function! Chk(a, b, result)
if a:result == 0
call Ch(a:a, '==?', a:b, 1)
call Ch(a:a, '!=?', a:b, 0)
--- 5,16 ----
finish
endif
! func Ch(a, op, b, expected)
call assert_equal(eval(printf('"%s" %s "%s"', a:a, a:op, a:b)), a:expected,
\ printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
! endfunc
! func Chk(a, b, result)
if a:result == 0
call Ch(a:a, '==?', a:b, 1)
call Ch(a:a, '!=?', a:b, 0)
***************
*** 33,58 ****
call Ch(a:a, '<?', a:b, 1)
call Ch(a:a, '>?', a:b, 0)
endif
! endfunction
! function! Check(a, b, result)
call Chk(a:a, a:b, a:result)
call Chk(a:b, a:a, -a:result)
! endfunction
! function! LT(a, b)
call Check(a:a, a:b, -1)
! endfunction
! function! GT(a, b)
call Check(a:a, a:b, 1)
! endfunction
! function! EQ(a, b)
call Check(a:a, a:b, 0)
! endfunction
! function Test_comparisons()
call EQ('', '')
call LT('', 'a')
call EQ('abc', 'abc')
--- 33,58 ----
call Ch(a:a, '<?', a:b, 1)
call Ch(a:a, '>?', a:b, 0)
endif
! endfunc
! func Check(a, b, result)
call Chk(a:a, a:b, a:result)
call Chk(a:b, a:a, -a:result)
! endfunc
! func LT(a, b)
call Check(a:a, a:b, -1)
! endfunc
! func GT(a, b)
call Check(a:a, a:b, 1)
! endfunc
! func EQ(a, b)
call Check(a:a, a:b, 0)
! endfunc
! func Test_comparisons()
call EQ('', '')
call LT('', 'a')
call EQ('abc', 'abc')
***************
*** 85,95 ****
for n in range(0xC0, 0xFF)
call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n))
endfor
! endfunction
" test that g~ap changes one paragraph only.
! function Test_gap()
new
call feedkeys("iabcd\n\ndefg gg0g~ap", "tx")
call assert_equal(["ABCD", "", "defg"], getline(1,3))
! endfunction
--- 85,95 ----
for n in range(0xC0, 0xFF)
call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n))
endfor
! endfunc
" test that g~ap changes one paragraph only.
! func Test_gap()
new
call feedkeys("iabcd\n\ndefg gg0g~ap", "tx")
call assert_equal(["ABCD", "", "defg"], getline(1,3))
! endfunc
*** ../vim-8.1.0710/src/testdir/test_vartabs.vim 2018-11-22
03:07:30.948596188 +0100
--- src/testdir/test_vartabs.vim 2019-01-09 22:49:05.211061699 +0100
***************
*** 134,140 ****
bwipeout!
endfunc
! func! Test_vartabs_breakindent()
if !exists("+breakindent")
return
endif
--- 134,140 ----
bwipeout!
endfunc
! func Test_vartabs_breakindent()
if !exists("+breakindent")
return
endif
*** ../vim-8.1.0710/src/testdir/test_vimscript.vim 2017-09-23
18:58:18.000000000 +0200
--- src/testdir/test_vimscript.vim 2019-01-09 22:50:51.474166455 +0100
***************
*** 5,15 ****
" Test environment {{{1
"-------------------------------------------------------------------------------
! com! XpathINIT let g:Xpath = ''
com! -nargs=1 -bar Xpath let g:Xpath = g:Xpath . <args>
" Append a message to the "messages" file
! func! Xout(text)
split messages
$put =a:text
wq
--- 5,15 ----
" Test environment {{{1
"-------------------------------------------------------------------------------
! com! XpathINIT let g:Xpath = ''
com! -nargs=1 -bar Xpath let g:Xpath = g:Xpath . <args>
" Append a message to the "messages" file
! func Xout(text)
split messages
$put =a:text
wq
***************
*** 25,31 ****
" in the variable argument list. This function is useful if similar tests are
" to be made for a ":return" from a function call or a ":finish" in a script
" file.
! function! MakeScript(funcname, ...)
let script = tempname()
execute "redir! >" . script
execute "function" a:funcname
--- 25,31 ----
" in the variable argument list. This function is useful if similar tests are
" to be made for a ":return" from a function call or a ":finish" in a script
" file.
! func MakeScript(funcname, ...)
let script = tempname()
execute "redir! >" . script
execute "function" a:funcname
***************
*** 50,56 ****
write
bwipeout
return script
! endfunction
" ExecAsScript - Source a temporary script made from a function. {{{2
"
--- 50,56 ----
write
bwipeout
return script
! endfunc
" ExecAsScript - Source a temporary script made from a function. {{{2
"
***************
*** 301,309 ****
"
let calls = ""
com! -nargs=1 CALL
! \ if !exists("calls") && !exists("outer") |
! \ let g:calls = g:calls . <args> |
! \ endif
let i = 0
while i < 3
--- 301,309 ----
"
let calls = ""
com! -nargs=1 CALL
! \ if !exists("calls") && !exists("outer") |
! \ let g:calls = g:calls . <args> |
! \ endif
let i = 0
while i < 3
***************
*** 357,363 ****
if exists("*F1")
call F1("F1")
if exists("*G1")
! call G1("G1")
endif
endif
--- 357,363 ----
if exists("*F1")
call F1("F1")
if exists("*G1")
! call G1("G1")
endif
endif
***************
*** 367,379 ****
if exists("*F2")
call F2(2, "F2")
if exists("*G21")
! call G21("G21")
endif
if exists("*G22")
! call G22("G22")
endif
if exists("*G23")
! call G23("G23")
endif
endif
--- 367,379 ----
if exists("*F2")
call F2(2, "F2")
if exists("*G21")
! call G21("G21")
endif
if exists("*G22")
! call G22("G22")
endif
if exists("*G23")
! call G23("G23")
endif
endif
***************
*** 383,395 ****
if exists("*F3")
call F3(3, "F3")
if exists("*G31")
! call G31("G31")
endif
if exists("*G32")
! call G32("G32")
endif
if exists("*G33")
! call G33("G33")
endif
endif
--- 383,395 ----
if exists("*F3")
call F3(3, "F3")
if exists("*G31")
! call G31("G31")
endif
if exists("*G32")
! call G32("G32")
endif
if exists("*G33")
! call G33("G33")
endif
endif
***************
*** 640,646 ****
endif
endif
return match
! endfunction
if 1 || strlen("\"") | Xpath 'a'
Xpath 'b'
--- 640,646 ----
endif
endif
return match
! endfunc
if 1 || strlen("\"") | Xpath 'a'
Xpath 'b'
***************
*** 1032,1042 ****
call assert_true(empty(v:none))
func ChangeYourMind()
! try
! return v:true
! finally
! return 'something else'
! endtry
endfunc
call ChangeYourMind()
--- 1032,1042 ----
call assert_true(empty(v:none))
func ChangeYourMind()
! try
! return v:true
! finally
! return 'something else'
! endtry
endfunc
call ChangeYourMind()
***************
*** 1250,1319 ****
func Test_script_lines()
" :append
try
! call DefineFunction('T_Append', [
! \ 'append',
! \ 'py <<EOS',
! \ '.',
! \ ])
catch
! call assert_report("Can't define function")
endtry
try
! call DefineFunction('T_Append', [
! \ 'append',
! \ 'abc',
! \ ])
! call assert_report("Shouldn't be able to define function")
catch
! call assert_exception('Vim(function):E126: Missing :endfunction')
endtry
" :change
try
! call DefineFunction('T_Change', [
! \ 'change',
! \ 'py <<EOS',
! \ '.',
! \ ])
catch
! call assert_report("Can't define function")
endtry
try
! call DefineFunction('T_Change', [
! \ 'change',
! \ 'abc',
! \ ])
! call assert_report("Shouldn't be able to define function")
catch
! call assert_exception('Vim(function):E126: Missing :endfunction')
endtry
" :insert
try
! call DefineFunction('T_Insert', [
! \ 'insert',
! \ 'py <<EOS',
! \ '.',
! \ ])
catch
! call assert_report("Can't define function")
endtry
try
! call DefineFunction('T_Insert', [
! \ 'insert',
! \ 'abc',
! \ ])
! call assert_report("Shouldn't be able to define function")
catch
! call assert_exception('Vim(function):E126: Missing :endfunction')
endtry
endfunc
"-------------------------------------------------------------------------------
" Test 96: line continuation {{{1
"
! " Undefined behavior was detected by ubsan with line continuation
! " after an empty line.
"-------------------------------------------------------------------------------
func Test_script_emty_line_continuation()
--- 1250,1319 ----
func Test_script_lines()
" :append
try
! call DefineFunction('T_Append', [
! \ 'append',
! \ 'py <<EOS',
! \ '.',
! \ ])
catch
! call assert_report("Can't define function")
endtry
try
! call DefineFunction('T_Append', [
! \ 'append',
! \ 'abc',
! \ ])
! call assert_report("Shouldn't be able to define function")
catch
! call assert_exception('Vim(function):E126: Missing :endfunction')
endtry
" :change
try
! call DefineFunction('T_Change', [
! \ 'change',
! \ 'py <<EOS',
! \ '.',
! \ ])
catch
! call assert_report("Can't define function")
endtry
try
! call DefineFunction('T_Change', [
! \ 'change',
! \ 'abc',
! \ ])
! call assert_report("Shouldn't be able to define function")
catch
! call assert_exception('Vim(function):E126: Missing :endfunction')
endtry
" :insert
try
! call DefineFunction('T_Insert', [
! \ 'insert',
! \ 'py <<EOS',
! \ '.',
! \ ])
catch
! call assert_report("Can't define function")
endtry
try
! call DefineFunction('T_Insert', [
! \ 'insert',
! \ 'abc',
! \ ])
! call assert_report("Shouldn't be able to define function")
catch
! call assert_exception('Vim(function):E126: Missing :endfunction')
endtry
endfunc
"-------------------------------------------------------------------------------
" Test 96: line continuation {{{1
"
! " Undefined behavior was detected by ubsan with line continuation
! " after an empty line.
"-------------------------------------------------------------------------------
func Test_script_emty_line_continuation()
*** ../vim-8.1.0710/src/testdir/test_window_cmd.vim 2018-12-24
00:22:35.739150151 +0100
--- src/testdir/test_window_cmd.vim 2019-01-09 22:51:15.453965638 +0100
***************
*** 578,590 ****
only
endfunc
! function! Fun_RenewFile()
sleep 2
silent execute '!echo "1" > tmp.txt'
sp
wincmd p
edit! tmp.txt
! endfunction
func Test_window_prevwin()
" Can we make this work on MS-Windows?
--- 578,590 ----
only
endfunc
! func Fun_RenewFile()
sleep 2
silent execute '!echo "1" > tmp.txt'
sp
wincmd p
edit! tmp.txt
! endfunc
func Test_window_prevwin()
" Can we make this work on MS-Windows?
*** ../vim-8.1.0710/src/testdir/test_xxd.vim 2018-05-17 15:49:14.000000000
+0200
--- src/testdir/test_xxd.vim 2019-01-09 22:51:36.965785833 +0100
***************
*** 7,23 ****
let s:xxd_cmd = $XXD
endif
! func! PrepareBuffer(lines)
new
call append(0, a:lines)
$d
endfunc
! func! s:Mess(counter)
return printf("Failed xxd test %d:", a:counter)
endfunc
! func! Test_xxd()
call PrepareBuffer(range(1,30))
set ff=unix
w XXDfile
--- 7,23 ----
let s:xxd_cmd = $XXD
endif
! func PrepareBuffer(lines)
new
call append(0, a:lines)
$d
endfunc
! func s:Mess(counter)
return printf("Failed xxd test %d:", a:counter)
endfunc
! func Test_xxd()
call PrepareBuffer(range(1,30))
set ff=unix
w XXDfile
*** ../vim-8.1.0710/src/version.c 2019-01-09 22:24:46.568161097 +0100
--- src/version.c 2019-01-09 22:58:02.562605011 +0100
***************
*** 801,802 ****
--- 801,804 ----
{ /* Add new patch number below this line */
+ /**/
+ 711,
/**/
--
hundred-and-one symptoms of being an internet addict:
140. You'd rather catch a score on the web than watch the game as
it is being played on tv.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.