patch 9.1.1193: Unnecessary use of STRCAT() in au_event_disable() Commit: https://github.com/vim/vim/commit/969e11a18b145241dc0ab39fc1be7ed814655dfc Author: zeertzjq <zeert...@outlook.com> Date: Mon Mar 10 21:15:19 2025 +0100
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 <zeert...@outlook.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/src/autocmd.c b/src/autocmd.c index aa1808717..f0b573bf5 100644 --- a/src/autocmd.c +++ b/src/autocmd.c @@ -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); diff --git a/src/ex_getln.c b/src/ex_getln.c index fa1ea991b..bc996741a 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -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. diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim index 8d81a828b..d21a22218 100644 --- a/src/testdir/test_arglist.vim +++ b/src/testdir/test_arglist.vim @@ -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 diff --git a/src/version.c b/src/version.c index 6b7ca233c..bc21b037e 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1193, /**/ 1192, /**/ -- -- 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 vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1trjlD-002gyd-RF%40256bit.org.