diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2006-06-26 10:04:09 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2006-06-26 10:04:09 +0000 |
commit | bd50a3c516f3e19c444c40987e657d1be78583c0 (patch) | |
tree | 96b6046895811d782a5c8cc1e4ae4a7312a3c49f /Src | |
parent | 66b58d9c21702fdc39c722d27b4ea149f6221945 (diff) | |
download | zsh-bd50a3c516f3e19c444c40987e657d1be78583c0.tar.gz zsh-bd50a3c516f3e19c444c40987e657d1be78583c0.tar.xz zsh-bd50a3c516f3e19c444c40987e657d1be78583c0.zip |
22516: error in func() didn't pop command stack
Diffstat (limited to 'Src')
-rw-r--r-- | Src/parse.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Src/parse.c b/Src/parse.c index d436eef18..c67561be2 100644 --- a/Src/parse.c +++ b/Src/parse.c @@ -1672,6 +1672,7 @@ par_simple(int *complex, int nr) lineno += oldlineno; ecnpats = onp; ecssub = oecssub; + cmdpop(); YYERROR(oecused); } yylex(); @@ -1683,8 +1684,10 @@ par_simple(int *complex, int nr) pl = ecadd(WCB_PIPE(WC_PIPE_END, 0)); par_cmd(&c); - if (!c) + if (!c) { + cmdpop(); YYERROR(oecused); + } set_sublist_code(sl, WC_SUBLIST_END, 0, ecused - 1 - sl, c); set_list_code(ll, (Z_SYNC | Z_END), c); |