0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

patch 8.2.4675: no error for missing expression after :elseif

Problem:    No error for missing expression after :elseif. (Ernie Rael)
Solution:   Check for missing expression. (closes #10068)
This commit is contained in:
Bram Moolenaar
2022-04-03 16:13:07 +01:00
parent c4cb544cd5
commit fa010cdfb1
3 changed files with 18 additions and 1 deletions

View File

@@ -1146,7 +1146,12 @@ ex_else(exarg_T *eap)
if (eap->cmdidx == CMD_elseif)
{
result = eval_to_bool(eap->arg, &error, eap, skip);
// When skipping we ignore most errors, but a missing expression is
// wrong, perhaps it should have been "else".
if (skip && ends_excmd(*eap->arg))
semsg(_(e_invalid_expression_str), eap->arg);
else
result = eval_to_bool(eap->arg, &error, eap, skip);
// When throwing error exceptions, we want to throw always the first
// of several errors in a row. This is what actually happens when