summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Src/parse.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 653798257..5bcdf2d4e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-04-23  Peter Stephenson  <p.stephenson@samsung.com>
+
+	* 23362: Src/parse.c: Allow short loops with "while".
+
 2018-04-20  Peter Stephenson  <p.stephenson@samsung.com>
 
 	* 42684 (with extra comments): Src/exec.c: Fork earlier
diff --git a/Src/parse.c b/Src/parse.c
index 47e5a246a..83383f10c 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -1510,8 +1510,10 @@ par_while(int *cmplx)
 	if (tok != ZEND)
 	    YYERRORV(oecused);
 	zshlex();
-    } else
+    } else if (unset(SHORTLOOPS)) {
 	YYERRORV(oecused);
+    } else
+	par_save_list1(cmplx);
 
     ecbuf[p] = WCB_WHILE(type, ecused - 1 - p);
 }