Patch 8.2.3360
Problem:    User function completion fails with dict function.
Solution:   Do not stop sequencing through the list if user functions when
            encountering an empty name. (Naohiro Ono, closes #8765,
            closes #8774)
Files:      src/evalfunc.c, src/testdir/test_cmdline.vim


*** ../vim-8.2.3359/src/evalfunc.c      2021-08-16 21:38:38.131122584 +0200
--- src/evalfunc.c      2021-08-19 21:17:07.049486174 +0200
***************
*** 2307,2315 ****
      if (intidx < 0)
      {
        name = get_user_func_name(xp, idx);
!       if (name != NULL && *name != NUL)
        {
!           if (*name != '<' && STRNCMP("g:", xp->xp_pattern, 2) == 0)
                return cat_prefix_varname('g', name);
            return name;
        }
--- 2307,2316 ----
      if (intidx < 0)
      {
        name = get_user_func_name(xp, idx);
!       if (name != NULL)
        {
!           if (*name != NUL && *name != '<'
!                                     && STRNCMP("g:", xp->xp_pattern, 2) == 0)
                return cat_prefix_varname('g', name);
            return name;
        }
*** ../vim-8.2.3359/src/testdir/test_cmdline.vim        2021-08-14 
21:11:47.500966948 +0200
--- src/testdir/test_cmdline.vim        2021-08-19 21:15:46.825654883 +0200
***************
*** 650,656 ****
  
  func Test_cmdline_complete_user_func()
    call feedkeys(":func Test_cmdline_complete_user\<Tab>\<Home>\"\<cr>", 'tx')
!   call assert_match('"func Test_cmdline_complete_user', @:)
    call feedkeys(":func s:ScriptL\<Tab>\<Home>\"\<cr>", 'tx')
    call assert_match('"func <SNR>\d\+_ScriptLocalFunction', @:)
  
--- 650,656 ----
  
  func Test_cmdline_complete_user_func()
    call feedkeys(":func Test_cmdline_complete_user\<Tab>\<Home>\"\<cr>", 'tx')
!   call assert_match('"func Test_cmdline_complete_user_', @:)
    call feedkeys(":func s:ScriptL\<Tab>\<Home>\"\<cr>", 'tx')
    call assert_match('"func <SNR>\d\+_ScriptLocalFunction', @:)
  
***************
*** 662,667 ****
--- 662,675 ----
    let Fx = { a ->  a }
    call feedkeys(":echo g:\<Tab>\<Home>\"\<cr>", 'tx')
    call assert_match('"echo g:[A-Z]', @:)
+ 
+   " existence of script-local dict function does not break user function name
+   " completion
+   function s:a_dict_func() dict
+   endfunction
+   call feedkeys(":call Test_cmdline_complete_user\<Tab>\<Home>\"\<cr>", 'tx')
+   call assert_match('"call Test_cmdline_complete_user_', @:)
+   delfunction s:a_dict_func
  endfunc
  
  func Test_cmdline_complete_user_names()
*** ../vim-8.2.3359/src/version.c       2021-08-19 21:08:26.182565742 +0200
--- src/version.c       2021-08-19 21:19:42.917156797 +0200
***************
*** 757,758 ****
--- 757,760 ----
  {   /* Add new patch number below this line */
+ /**/
+     3360,
  /**/

-- 
So when I saw the post to comp.editors, I rushed over to the FTP site to
grab it.  So I yank apart the tarball, light x candles, where x= the
vim version multiplied by the md5sum of the source divided by the MAC of
my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights,
wave a dead chicken over the hard drive, and summon the power of GNU GCC
with the magic words "make config ; make!".
                [Jason Spence, compiling Vim 5.0]

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202108191921.17JJLCqt656756%40masaka.moolenaar.net.

Raspunde prin e-mail lui