patch 9.1.1193: Unnecessary use of STRCAT() in au_event_disable()

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>
This commit is contained in:
zeertzjq
2025-03-10 21:15:19 +01:00
committed by Christian Brabandt
parent 835bc014c0
commit 969e11a18b
4 changed files with 29 additions and 2 deletions

View 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);

View 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.

View 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

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1193,
/**/
1192,
/**/