vim-patch:9.1.1193: Unnecessary use of STRCAT() in au_event_disable() (#32829)

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: vim/vim#16844

969e11a18b

Cherry-pick p_ei_len from patch 9.1.0256.
This commit is contained in:
zeertzjq
2025-03-11 06:54:17 +08:00
committed by GitHub
parent 1f49a59b8b
commit 7e2b75760f
3 changed files with 30 additions and 4 deletions

View File

@@ -700,12 +700,13 @@ int check_ei(char *ei)
// Returns the old value of 'eventignore' in allocated memory.
char *au_event_disable(char *what)
{
char *save_ei = xstrdup(p_ei);
char *new_ei = xstrnsave(p_ei, strlen(p_ei) + strlen(what));
size_t p_ei_len = strlen(p_ei);
char *save_ei = xmemdupz(p_ei, p_ei_len);
char *new_ei = xstrnsave(p_ei, p_ei_len + strlen(what));
if (*what == ',' && *p_ei == NUL) {
STRCPY(new_ei, what + 1);
} else {
strcat(new_ei, what);
STRCPY(new_ei + p_ei_len, what);
}
set_option_direct(kOptEventignore, CSTR_AS_OPTVAL(new_ei), 0, SID_NONE);
xfree(new_ei);

View File

@@ -4528,7 +4528,7 @@ static int 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.