summaryrefslogtreecommitdiffstats
path: root/src/autocmd.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-06-01 16:02:38 +0100
committerBram Moolenaar <Bram@vim.org>2022-06-01 16:02:38 +0100
commit882476ad7b4944a8386993e94b7e31139a314f91 (patch)
tree65c8b0ef8ee9ea32e6c92b4f48e622e86c6ae6cc /src/autocmd.c
parent409510c588b1eec1ae33511ae97a21eb8e110895 (diff)
patch 8.2.5051: check for autocmd_add() event argument is confusingv8.2.5051
Problem: Check for autocmd_add() event argument is confusing. Solution: Make the code more straightforward.
Diffstat (limited to 'src/autocmd.c')
-rw-r--r--src/autocmd.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/autocmd.c b/src/autocmd.c
index 2050da6640..71aeb5036b 100644
--- a/src/autocmd.c
+++ b/src/autocmd.c
@@ -2951,26 +2951,24 @@ autocmd_add_or_delete(typval_T *argvars, typval_T *rettv, int delete)
if (eli == NULL)
break;
if (eli->li_tv.v_type != VAR_STRING
- || eli->li_tv.vval.v_string == NULL)
+ || (p = eli->li_tv.vval.v_string) == NULL)
{
emsg(_(e_string_required));
- continue;
+ break;
}
- p = eli->li_tv.vval.v_string;
}
else
{
- if (end == NULL)
- p = end = event_name;
- if (end == NULL || *end == NUL)
+ if (p == NULL)
+ p = event_name;
+ if (p == NULL || *p == NUL)
break;
}
- if (p == NULL)
- continue;
event = event_name2nr(p, &end);
if (event == NUM_EVENTS || *end != NUL)
{
+ // this also catches something following a valid event name
semsg(_(e_no_such_event_str), p);
retval = VVAL_FALSE;
break;