patch 8.2.2094: when an expression fails getting next command may be wrong
Problem: When an expression fails getting the next command may be wrong.
Solution: Do not check for a next command after :eval fails. (closes #7415)
diff --git a/src/eval.c b/src/eval.c
index 2232510..47aaaad 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2156,7 +2156,10 @@
&& called_emsg == called_emsg_before
&& (flags & EVAL_CONSTANT) == 0)
semsg(_(e_invexpr2), arg);
- ret = FAIL;
+
+ // Some of the expression may not have been consumed. Do not check for
+ // a next command to avoid more errors.
+ return FAIL;
}
if (eap != NULL)