patch 9.1.1193: Unnecessary use of STRCAT() in au_event_disable()
Commit:
https://github.com/vim/vim/commit/969e11a18b145241dc0ab39fc1be7ed814655dfc
Author: zeertzjq <[email protected]>
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 <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
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 [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1trjlD-002gyd-RF%40256bit.org.