summaryrefslogtreecommitdiffstats
path: root/src/ex_eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ex_eval.c')
-rw-r--r--src/ex_eval.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 38517e3e7f..6acf9de7df 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -1172,11 +1172,16 @@ ex_endwhile(eap)
fl = cstack->cs_flags[cstack->cs_idx];
if (!(fl & csf))
{
+ /* If we are in a ":while" or ":for" but used the wrong endloop
+ * command, do not rewind to the next enclosing ":for"/":while". */
if (fl & CSF_WHILE)
- eap->errmsg = (char_u *)_("E999: Using :endfor with :while");
+ eap->errmsg = (char_u *)_("E732: Using :endfor with :while");
else if (fl & CSF_FOR)
- eap->errmsg = (char_u *)_("E999: Using :endwhile with :for");
- else if (!(fl & CSF_TRY))
+ eap->errmsg = (char_u *)_("E733: Using :endwhile with :for");
+ }
+ if (!(fl & (CSF_WHILE | CSF_FOR)))
+ {
+ if (!(fl & CSF_TRY))
eap->errmsg = e_endif;
else if (fl & CSF_FINALLY)
eap->errmsg = e_endtry;