about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-02-24 10:20:23 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-02-24 10:20:23 +0000
commit01ffe47e012deb204dc74a3fff794f8b4a3ec795 (patch)
tree3f025099e1e9e8259b7fbe6683976a2f655e229a /Src
parent3aeeda594e1f2f572f0865ee01829875d6db369e (diff)
downloadzsh-01ffe47e012deb204dc74a3fff794f8b4a3ec795.tar.gz
zsh-01ffe47e012deb204dc74a3fff794f8b4a3ec795.tar.xz
zsh-01ffe47e012deb204dc74a3fff794f8b4a3ec795.zip
zsh-workers/9863
Diffstat (limited to 'Src')
-rw-r--r--Src/parse.c6
-rw-r--r--Src/text.c4
2 files changed, 6 insertions, 4 deletions
diff --git a/Src/parse.c b/Src/parse.c
index 85e70935f..fde25f106 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -1154,13 +1154,13 @@ par_if(int *complex)
 	    yylex();
 	if (tok == INBRACE && usebrace) {
 	    yylex();
-	    par_list(complex);
+	    par_save_list(complex);
 	    if (tok != OUTBRACE) {
 		cmdpop();
 		YYERRORV(oecused);
 	    }
 	} else {
-	    par_list(complex);
+	    par_save_list(complex);
 	    if (tok != FI) {
 		cmdpop();
 		YYERRORV(oecused);
@@ -1507,7 +1507,7 @@ par_simple(int *complex, int nr)
 		int c = 0;
 
 		yylex();
-		par_list(&c);
+		par_save_list(&c);
 		if (tok != OUTBRACE) {
 		    cmdpop();
 		    lineno += oldlineno;
diff --git a/Src/text.c b/Src/text.c
index cb0561a90..235064efc 100644
--- a/Src/text.c
+++ b/Src/text.c
@@ -269,7 +269,7 @@ gettext2(Estate state)
 		    taddstr("! ");
 		if (WC_SUBLIST_FLAGS(code) & WC_SUBLIST_COPROC)
 		    taddstr("coproc ");
-		tpush(code, (WC_SUBLIST_TYPE(code) == WC_SUBLIST_END));
+		s = tpush(code, (WC_SUBLIST_TYPE(code) == WC_SUBLIST_END));
 	    } else {
 		if (!(stack = (WC_SUBLIST_TYPE(code) == WC_SUBLIST_END))) {
 		    taddstr((WC_SUBLIST_TYPE(code) == WC_SUBLIST_OR) ?
@@ -282,6 +282,8 @@ gettext2(Estate state)
 			taddstr("coproc ");
 		}
 	    }
+	    if (!stack && (WC_SUBLIST_FLAGS(s->code) & WC_SUBLIST_SIMPLE))
+		state->pc++;
 	    break;
 	case WC_PIPE:
 	    if (!s) {