To: vim_dev@googlegroups.com Subject: Patch 8.1.0025 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.0025 Problem: No test for the undofile() function. Solution: Add test. (Dominique Pelle, closes #2958) Files: src/testdir/test_undo.vim *** ../vim-8.1.0024/src/testdir/test_undo.vim 2018-02-06 22:06:44.000000000 +0100 --- src/testdir/test_undo.vim 2018-05-26 18:45:22.924163341 +0200 *************** *** 85,91 **** func FillBuffer() for i in range(1,13) put=i ! " Set 'undolevels' to split undo. exe "setg ul=" . &g:ul endfor endfunc --- 85,91 ---- func FillBuffer() for i in range(1,13) put=i ! " Set 'undolevels' to split undo. exe "setg ul=" . &g:ul endfor endfunc *************** *** 193,211 **** new set ul=100 ! let a=execute('undolist') call assert_equal("\nNothing to undo", a) " 1 leaf (2 changes). call feedkeys('achange1', 'xt') call feedkeys('achange2', 'xt') ! let a=execute('undolist') call assert_match("^\nnumber changes when *saved\n *2 *2 .*$", a) " 2 leaves. call feedkeys('u', 'xt') call feedkeys('achange3\', 'xt') ! let a=execute('undolist') call assert_match("^\nnumber changes when *saved\n *2 *2 *.*\n *3 *2 .*$", a) close! endfunc --- 193,211 ---- new set ul=100 ! let a = execute('undolist') call assert_equal("\nNothing to undo", a) " 1 leaf (2 changes). call feedkeys('achange1', 'xt') call feedkeys('achange2', 'xt') ! let a = execute('undolist') call assert_match("^\nnumber changes when *saved\n *2 *2 .*$", a) " 2 leaves. call feedkeys('u', 'xt') call feedkeys('achange3\', 'xt') ! let a = execute('undolist') call assert_match("^\nnumber changes when *saved\n *2 *2 *.*\n *3 *2 .*$", a) close! endfunc *************** *** 339,345 **** " Also test this in an empty buffer. func Test_cmd_in_reg_undo() enew! ! let @a="Ox\jAy\kdd" edit +/^$ test_undo.vim normal @au call assert_equal(0, &modified) --- 339,345 ---- " Also test this in an empty buffer. func Test_cmd_in_reg_undo() enew! ! let @a = "Ox\jAy\kdd" edit +/^$ test_undo.vim normal @au call assert_equal(0, &modified) *************** *** 348,354 **** normal @au call assert_equal(0, &modified) only! ! let @a='' endfunc " This used to cause an illegal memory access --- 348,354 ---- normal @au call assert_equal(0, &modified) only! ! let @a = '' endfunc " This used to cause an illegal memory access *************** *** 410,412 **** --- 410,444 ---- exe "norm." bwipe! endfunc + + funct Test_undofile() + " Test undofile() without setting 'undodir'. + if has('persistent_undo') + call assert_equal(fnamemodify('.Xundofoo.un~', ':p'), undofile('Xundofoo')) + else + call assert_equal('', undofile('Xundofoo')) + endif + call assert_equal('', undofile('')) + + " Test undofile() with 'undodir' set to to an existing directory. + call mkdir('Xundodir') + set undodir=Xundodir + let cwd = getcwd() + if has('win32') + " Replace windows drive such as C:... into C%... + let cwd = substitute(cwd, '^\([A-Z]\):', '\1%', 'g') + endif + let cwd = substitute(cwd . '/Xundofoo', '/', '%', 'g') + if has('persistent_undo') + call assert_equal('Xundodir/' . cwd, undofile('Xundofoo')) + else + call assert_equal('', undofile('Xundofoo')) + endif + call assert_equal('', undofile('')) + call delete('Xundodir', 'd') + + " Test undofile() with 'undodir' set to a non-existing directory. + call assert_equal('', undofile('Xundofoo')) + + set undodir& + endfunc *** ../vim-8.1.0024/src/version.c 2018-05-26 18:39:29.608575858 +0200 --- src/version.c 2018-05-26 18:43:40.832284081 +0200 *************** *** 763,764 **** --- 763,766 ---- { /* Add new patch number below this line */ + /**/ + 25, /**/ -- Engineers are always delighted to share wisdom, even in areas in which they have no experience whatsoever. Their logic provides them with inherent insight into any field of expertise. This can be a problem when dealing with the illogical people who believe that knowledge can only be derived through experience. (Scott Adams - The Dilbert principle) /// 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 ///