diff options
Diffstat (limited to 'data/vim/patches/8.1.0711')
-rw-r--r-- | data/vim/patches/8.1.0711 | 3578 |
1 files changed, 0 insertions, 3578 deletions
diff --git a/data/vim/patches/8.1.0711 b/data/vim/patches/8.1.0711 deleted file mode 100644 index 8415f6ad8..000000000 --- a/data/vim/patches/8.1.0711 +++ /dev/null @@ -1,3578 +0,0 @@ -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 /// |