diff options
author | Sam Bingner <sam@bingner.com> | 2019-06-05 22:02:50 -1000 |
---|---|---|
committer | Sam Bingner <sam@bingner.com> | 2019-06-05 22:02:50 -1000 |
commit | a255618e22152ca2e5fd361a3d0762e9db20dd80 (patch) | |
tree | 5c98f76c0de0785b8d5b58ac622da34f0d024a8f /data/vim/patches/8.1.0711 | |
parent | 1b1fa61507a809a66f053a8523f883b2b6a2f487 (diff) |
Update vim to 8.1.1471
Diffstat (limited to 'data/vim/patches/8.1.0711')
-rw-r--r-- | data/vim/patches/8.1.0711 | 3578 |
1 files changed, 3578 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0711 b/data/vim/patches/8.1.0711 new file mode 100644 index 000000000..8415f6ad8 --- /dev/null +++ b/data/vim/patches/8.1.0711 @@ -0,0 +1,3578 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0711 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +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 <Servatius.Brandt@fujitsu-siemens.com> +! " Last Change: 2016 Feb 07 + + "------------------------------------------------------------------------------- + " Test environment {{{1 +--- 1,6 ---- + " Vim script language tests + " Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com> +! " 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\ndefggg0g~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\ndefggg0g~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 -- Bram@Moolenaar.net -- 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 /// |