about summary refs log tree commit diff
path: root/Src/exec.c
diff options
context:
space:
mode:
authorPeter Stephenson <p.stephenson@samsung.com>2023-03-29 10:52:05 +0100
committerPeter Stephenson <p.stephenson@samsung.com>2023-03-29 10:52:05 +0100
commit12e5db145b098a62ff11b88eea26f473ea2ecdcf (patch)
tree147e2f424d37ef02f9fd97cda3477cc79a1e5466 /Src/exec.c
parent6d40d9b63b41188cc846918e19bbf2982b9305b9 (diff)
downloadzsh-12e5db145b098a62ff11b88eea26f473ea2ecdcf.tar.gz
zsh-12e5db145b098a62ff11b88eea26f473ea2ecdcf.tar.xz
zsh-12e5db145b098a62ff11b88eea26f473ea2ecdcf.zip
51608: Don't execute commands after "continue &&"
Also ! continue ||
Diffstat (limited to 'Src/exec.c')
-rw-r--r--Src/exec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Src/exec.c b/Src/exec.c
index 3330bbce8..4328975b9 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -1491,7 +1491,7 @@ execlist(Estate state, int dont_change_job, int exiting)
 		 * we find a sublist followed by ORNEXT.                   */
 		if ((ret = ((WC_SUBLIST_FLAGS(code) & WC_SUBLIST_SIMPLE) ?
 			    execsimple(state) :
-			    execpline(state, code, Z_SYNC, 0)))) {
+			    execpline(state, code, Z_SYNC, 0))) || breaks) {
 		    state->pc = next;
 		    code = *state->pc++;
 		    next = state->pc + WC_SUBLIST_SKIP(code);
@@ -1524,7 +1524,7 @@ execlist(Estate state, int dont_change_job, int exiting)
 		 * we find a sublist followed by ANDNEXT.              */
 		if (!(ret = ((WC_SUBLIST_FLAGS(code) & WC_SUBLIST_SIMPLE) ?
 			     execsimple(state) :
-			     execpline(state, code, Z_SYNC, 0)))) {
+			     execpline(state, code, Z_SYNC, 0))) || breaks) {
 		    state->pc = next;
 		    code = *state->pc++;
 		    next = state->pc + WC_SUBLIST_SKIP(code);