]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1193: Unnecessary use of STRCAT() in au_event_disable() v9.1.1193
authorzeertzjq <zeertzjq@outlook.com>
Mon, 10 Mar 2025 20:15:19 +0000 (21:15 +0100)
committerChristian Brabandt <cb@256bit.org>
Mon, 10 Mar 2025 20:15:19 +0000 (21:15 +0100)
Problem:  Unnecessary use of STRCAT() in au_event_disable().  STRCAT()
          seeks to the end of new_ei, but here the end is already known.
Solution: Use STRCPY() and add p_ei_len to new_ei.  Also fix a typo in a
          comment.  Add a test that 'eventignore' works in :argdo
          (zeertzjq).

closes: #16844

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/autocmd.c
src/ex_getln.c
src/testdir/test_arglist.vim
src/version.c

index aa1808717b517fac1ea6a7eb64abecad7350db77..f0b573bf5d837a0251bd4c7bb41229454f90506a 100644 (file)
@@ -870,7 +870,7 @@ au_event_disable(char *what)
     if (*what == ',' && *p_ei == NUL)
        STRCPY(new_ei, what + 1);
     else
-       STRCAT(new_ei, what);
+       STRCPY(new_ei + p_ei_len, what);
     set_string_option_direct((char_u *)"ei", -1, new_ei,
            OPT_FREE, SID_NONE);
     vim_free(new_ei);
index fa1ea991b61c0e88b1520d1847d797a824c21391..bc996741a749734dc70ed6249d1ad1609a3b338b 100644 (file)
@@ -4716,7 +4716,7 @@ open_cmdwin(void)
     State = MODE_NORMAL;
     setmouse();
 
-    // Reset here so it can be set by a CmdWinEnter autocommand.
+    // Reset here so it can be set by a CmdwinEnter autocommand.
     cmdwin_result = 0;
 
     // Trigger CmdwinEnter autocommands.
index 8d81a828b3e03dcc94ea45bab5e55e81ae0a668d..d21a222188ab5af5a113ee3b8d2c9f80a8421a11 100644 (file)
@@ -554,9 +554,34 @@ endfunc
 func Test_argdo()
   next! Xa.c Xb.c Xc.c
   new
+
+  let g:bufenter = 0
+  let g:bufleave = 0
+  autocmd BufEnter * let g:bufenter += 1
+  autocmd BufLeave * let g:bufleave += 1
+
+  let l = []
+  argdo call add(l, expand('%'))
+  call assert_equal(['Xa.c', 'Xb.c', 'Xc.c'], l)
+  call assert_equal(3, g:bufenter)
+  call assert_equal(3, g:bufleave)
+
+  let g:bufenter = 0
+  let g:bufleave = 0
+
+  set eventignore=BufEnter,BufLeave
   let l = []
   argdo call add(l, expand('%'))
   call assert_equal(['Xa.c', 'Xb.c', 'Xc.c'], l)
+  call assert_equal(0, g:bufenter)
+  call assert_equal(0, g:bufleave)
+  call assert_equal('BufEnter,BufLeave', &eventignore)
+  set eventignore&
+
+  autocmd! BufEnter
+  autocmd! BufLeave
+  unlet g:bufenter
+  unlet g:bufleave
   bwipe Xa.c Xb.c Xc.c
 endfunc
 
index 6b7ca233c899b8138f7bdfb2134530672fe8f51e..bc21b037e3b930b0007a3367c2962a08aeb15437 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1193,
 /**/
     1192,
 /**/