To: vim_dev@googlegroups.com Subject: Patch 8.2.4366 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4366 Problem: Not enough tests for command line completion. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #9760) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/test_usercommands.vim *** ../vim-8.2.4365/src/cmdexpand.c 2022-02-12 12:03:03.959691691 +0000 --- src/cmdexpand.c 2022-02-13 11:41:06.582680942 +0000 *************** *** 50,55 **** --- 50,58 ---- return STRCMP(p1, p2); } + /* + * Escape special characters in the cmdline completion matches. + */ static void ExpandEscape( expand_T *xp, *** ../vim-8.2.4365/src/testdir/test_cmdline.vim 2022-02-11 18:51:27.813814058 +0000 --- src/testdir/test_cmdline.vim 2022-02-13 11:41:06.582680942 +0000 *************** *** 409,414 **** --- 409,420 ---- call assert_equal(cmds, l) let l = getcompletion('list ', 'sign') call assert_equal(['Testing'], l) + let l = getcompletion('de*', 'sign') + call assert_equal(['define'], l) + let l = getcompletion('p?', 'sign') + call assert_equal(['place'], l) + let l = getcompletion('j.', 'sign') + call assert_equal(['jump'], l) endif " Command line completion tests *************** *** 461,466 **** --- 467,484 ---- call delete('Xtags') set tags& + edit a~b + enew + call assert_equal(['a~b'], getcompletion('a~', 'buffer')) + bw a~b + + if has('unix') + edit Xtest\ + enew + call assert_equal(['Xtest\'], getcompletion('Xtest\', 'buffer')) + bw Xtest\ + endif + call assert_fails("call getcompletion('\\\\@!\\\\@=', 'buffer')", 'E871:') call assert_fails('call getcompletion("", "burp")', 'E475:') call assert_fails('call getcompletion("abc", [])', 'E475:') *************** *** 1006,1011 **** --- 1024,1048 ---- call feedkeys(":chist\\", 'xt') call assert_equal('"g/a\xb/clearjumps', @:) set wildchar& + + " should be able to complete a file name that starts with a '~'. + if has('unix') + call writefile([], '~Xtest') + call feedkeys(":e \\~X\\\"\", 'xt') + call assert_equal('"e \~Xtest', @:) + call delete('~Xtest') + endif + endfunc + + " Test for 'wildignorecase' + func Test_cmdline_wildignorecase() + CheckUnix + call writefile([], 'XTEST') + set wildignorecase + call feedkeys(":e xt\\\"\", 'xt') + call assert_equal('"e XTEST', @:) + set wildignorecase& + call delete('XTEST') endfunc func Test_cmdline_write_alternatefile() *************** *** 1627,1632 **** --- 1664,1677 ---- call assert_equal('AAA AAAA AAAAA', g:Sline) call assert_equal('"b A', @:) + " when using longest completion match, matches shorter than the argument + " should be ignored (happens with :help) + set wildmode=longest,full + set wildmenu + call feedkeys(":help a*\t\\"\", 'xt') + call assert_equal('"help a', @:) + set wildmenu& + %argdelete delcommand MyCmd delfunc T *** ../vim-8.2.4365/src/testdir/test_usercommands.vim 2022-01-29 21:45:30.485921485 +0000 --- src/testdir/test_usercommands.vim 2022-02-13 11:41:06.582680942 +0000 *************** *** 384,389 **** --- 384,400 ---- com! -nargs=? -complete=custom,min DoCmd call assert_fails("call feedkeys(':DoCmd \t', 'tx')", 'E118:') + " custom completion for a pattern with a backslash + let g:ArgLead = '' + func! CustCompl(A, L, P) + let g:ArgLead = a:A + return ['one', 'two', 'three'] + endfunc + com! -nargs=? -complete=customlist,CustCompl DoCmd + call feedkeys(":DoCmd a\\\t", 'xt') + call assert_equal('a\', g:ArgLead) + delfunc CustCompl + delcom DoCmd endfunc *** ../vim-8.2.4365/src/version.c 2022-02-12 22:13:02.259074450 +0000 --- src/version.c 2022-02-13 11:42:35.122933319 +0000 *************** *** 752,753 **** --- 752,755 ---- { /* Add new patch number below this line */ + /**/ + 4366, /**/ -- hundred-and-one symptoms of being an internet addict: 38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail on the way back to bed. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///