diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-06-01 16:02:38 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-06-01 16:02:38 +0100 |
commit | 882476ad7b4944a8386993e94b7e31139a314f91 (patch) | |
tree | 65c8b0ef8ee9ea32e6c92b4f48e622e86c6ae6cc /src/autocmd.c | |
parent | 409510c588b1eec1ae33511ae97a21eb8e110895 (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.c | 14 |
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; |