Patch 8.2.5049
Problem:    Insufficient tests for autocommands.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #10507)
Files:      src/autocmd.c, src/testdir/gen_opt_test.vim,
            src/testdir/test_autocmd.vim, src/testdir/test_cmdline.vim



*** ../vim-8.2.5048/src/autocmd.c       2022-05-27 21:16:29.297019075 +0100
--- src/autocmd.c       2022-06-01 12:26:35.114774855 +0100
***************
*** 3161,3193 ****
            for (ac = ap->cmds; ac != NULL; ac = ac->next)
            {
                event_dict = dict_alloc();
!               if (event_dict == NULL)
                    return;
  
!               if (list_append_dict(event_list, event_dict) == FAIL)
!                   return;
! 
!               if (dict_add_string(event_dict, "event", event_name) == FAIL)
!                   return;
! 
!               if (dict_add_string(event_dict, "group", group_name == NULL
!                           ? (char_u *)"" : group_name) == FAIL)
!                   return;
! 
!               if (ap->buflocal_nr != 0)
!                   if (dict_add_number(event_dict, "bufnr", ap->buflocal_nr)
!                                                                      == FAIL)
!                       return;
! 
!               if (dict_add_string(event_dict, "pattern", ap->pat) == FAIL)
!                   return;
! 
!               if (dict_add_string(event_dict, "cmd", ac->cmd) == FAIL)
!                   return;
! 
!               if (dict_add_bool(event_dict, "once", ac->once) == FAIL)
!                   return;
!               if (dict_add_bool(event_dict, "nested", ac->nested) == FAIL)
                    return;
            }
        }
--- 3161,3183 ----
            for (ac = ap->cmds; ac != NULL; ac = ac->next)
            {
                event_dict = dict_alloc();
!               if (event_dict == NULL
!                       || list_append_dict(event_list, event_dict) == FAIL)
                    return;
  
!               if (dict_add_string(event_dict, "event", event_name) == FAIL
!                       || dict_add_string(event_dict, "group",
!                                       group_name == NULL ? (char_u *)""
!                                                         : group_name) == FAIL
!                       || (ap->buflocal_nr != 0
!                               && (dict_add_number(event_dict, "bufnr",
!                                                   ap->buflocal_nr) == FAIL))
!                       || dict_add_string(event_dict, "pattern",
!                                                             ap->pat) == FAIL
!                       || dict_add_string(event_dict, "cmd", ac->cmd) == FAIL
!                       || dict_add_bool(event_dict, "once", ac->once) == FAIL
!                       || dict_add_bool(event_dict, "nested",
!                                                          ac->nested) == FAIL)
                    return;
            }
        }
*** ../vim-8.2.5048/src/testdir/gen_opt_test.vim        2022-03-02 
20:11:59.289532141 +0000
--- src/testdir/gen_opt_test.vim        2022-06-01 12:21:02.759079453 +0100
***************
*** 90,96 ****
        \ 'display': [['', 'lastline', 'lastline,uhex'], ['xxx']],
        \ 'eadirection': [['', 'both', 'ver'], ['xxx', 'ver,hor']],
        \ 'encoding': [['latin1'], ['xxx', '']],
!       \ 'eventignore': [['', 'WinEnter', 'WinLeave,winenter'], ['xxx']],
        \ 'fileencoding': [['', 'latin1', 'xxx'], []],
        \ 'fileformat': [['', 'dos', 'unix'], ['xxx']],
        \ 'fileformats': [['', 'dos', 'dos,unix'], ['xxx']],
--- 90,96 ----
        \ 'display': [['', 'lastline', 'lastline,uhex'], ['xxx']],
        \ 'eadirection': [['', 'both', 'ver'], ['xxx', 'ver,hor']],
        \ 'encoding': [['latin1'], ['xxx', '']],
!       \ 'eventignore': [['', 'WinEnter', 'WinLeave,winenter', 
'all,WinEnter'], ['xxx']],
        \ 'fileencoding': [['', 'latin1', 'xxx'], []],
        \ 'fileformat': [['', 'dos', 'unix'], ['xxx']],
        \ 'fileformats': [['', 'dos', 'dos,unix'], ['xxx']],
*** ../vim-8.2.5048/src/testdir/test_autocmd.vim        2022-05-27 
18:05:28.335620087 +0100
--- src/testdir/test_autocmd.vim        2022-06-01 12:21:02.759079453 +0100
***************
*** 3384,3389 ****
--- 3384,3395 ----
    let l = [#{group: 'TestAcSet', event: 'BufAdd', bufnr: 9999,
          \ cmd: 'echo "bufadd"'}]
    call assert_fails("echo autocmd_add(l)", 'E680:')
+   let l = [#{group: 'TestAcSet', event: 'BufAdd', bufnr: 9999,
+         \ pattern: '*.py', cmd: 'echo "bufadd"'}]
+   call assert_fails("echo autocmd_add(l)", 'E680:')
+   let l = [#{group: 'TestAcSet', event: 'BufAdd', bufnr: 9999,
+         \ pattern: ['*.py', '*.c'], cmd: 'echo "bufadd"'}]
+   call assert_fails("echo autocmd_add(l)", 'E680:')
    let l = [#{group: 'TestAcSet', event: 'BufRead', bufnr: [],
          \ cmd: 'echo "bufread"'}]
    call assert_fails("echo autocmd_add(l)", 'E745:')
***************
*** 3479,3484 ****
--- 3485,3491 ----
    " Test for invalid values for 'pattern' item
    let l = [#{group: 'TestAcSet', event: "BufEnter",
          \ pattern: test_null_string(), cmd: 'echo "bufcmds"'}]
+   call assert_fails('call autocmd_add(l)', 'E928:')
    let l = [#{group: 'TestAcSet', event: "BufEnter",
          \ pattern: test_null_list(), cmd: 'echo "bufcmds"'}]
    call assert_fails('call autocmd_add(l)', 'E714:')
***************
*** 3555,3560 ****
--- 3562,3570 ----
    " Delete a non-existing autocmd pattern
    let l = [#{group: 'TestAcSet', event: 'BufAdd', pat: 'abc'}]
    call assert_true(autocmd_delete(l))
+   " Delete an autocmd for a non-existing buffer
+   let l = [#{event: '*', bufnr: 9999, cmd: 'echo "x"'}]
+   call assert_fails('call autocmd_delete(l)', 'E680:')
  
    " Delete an autocmd group
    augroup TestAcSet
*** ../vim-8.2.5048/src/testdir/test_cmdline.vim        2022-05-17 
20:10:58.744361606 +0100
--- src/testdir/test_cmdline.vim        2022-06-01 12:21:02.759079453 +0100
***************
*** 1063,1072 ****
--- 1063,1081 ----
    augroup END
    call feedkeys(":augroup X\<C-A>\<C-B>\"\<CR>", 'xt')
    call assert_equal("\"augroup XTest.test", @:)
+ 
+   " group name completion in :autocmd
    call feedkeys(":au X\<C-A>\<C-B>\"\<CR>", 'xt')
    call assert_equal("\"au XTest.test", @:)
+   call feedkeys(":au XTest.test\<Tab>\<C-B>\"\<CR>", 'xt')
+   call assert_equal("\"au XTest.test", @:)
+ 
    augroup! XTest.test
  
+   " autocmd pattern completion
+   call feedkeys(":au BufEnter *.py\<Tab>\<C-B>\"\<CR>", 'xt')
+   call assert_equal("\"au BufEnter *.py\t", @:)
+ 
    " completion for the :unlet command
    call feedkeys(":unlet one two\<C-A>\<C-B>\"\<CR>", 'xt')
    call assert_equal("\"unlet one two", @:)
*** ../vim-8.2.5048/src/version.c       2022-05-31 17:03:11.271702930 +0100
--- src/version.c       2022-06-01 12:28:43.238681449 +0100
***************
*** 736,737 ****
--- 736,739 ----
  {   /* Add new patch number below this line */
+ /**/
+     5049,
  /**/

-- 
Vim is like Emacs without all the typing.  (John "Johann" Spetz)

 /// 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/20220601113337.2C4291C047B%40moolenaar.net.

Raspunde prin e-mail lui