Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: break: more completely enumerate loop types we are not in



---
 Src/builtin.c        | 4 ++--
 Test/A07control.ztst | 9 ++++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/Src/builtin.c b/Src/builtin.c
index 2453f82c08..8c17475f1b 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -5590,13 +5590,13 @@ bin_break(char *name, char **argv, UNUSED(Options ops), int func)
     switch (func) {
     case BIN_CONTINUE:
 	if (!loops) {   /* continue is only permitted in loops */
-	    zerrnam(name, "not in while, until, select, or repeat loop");
+	    zerrnam(name, "not in for, while, until, select, or repeat loop");
 	    return 1;
 	}
 	contflag = 1; /* FALLTHROUGH */
     case BIN_BREAK:
 	if (!loops) {   /* break is only permitted in loops */
-	    zerrnam(name, "not in while, until, select, or repeat loop");
+	    zerrnam(name, "not in for, while, until, select, or repeat loop");
 	    return 1;
 	}
 	breaks = nump ? minimum(num,loops) : 1;
diff --git a/Test/A07control.ztst b/Test/A07control.ztst
index b1a2487324..a3a82a68d1 100644
--- a/Test/A07control.ztst
+++ b/Test/A07control.ztst
@@ -23,12 +23,19 @@
 >start 255
 >255
 
+  $ZTST_testdir/../Src/zsh -fc 'fn() {
+    break
+  }
+  fn'
+1:break outside loop
+?fn:break:1: not in for, while, until, select, or repeat loop
+
   $ZTST_testdir/../Src/zsh -fc 'fn() {
     continue
   }
   fn'
 1:continue outside loop
-?fn:continue:1: not in while, until, select, or repeat loop
+?fn:continue:1: not in for, while, until, select, or repeat loop
 
   for outer in 0 1 2 3; do
     print outer $outer
-- 
2.15.1



Messages sorted by: Reverse Date, Date, Thread, Author