summaryrefslogtreecommitdiff
path: root/Src/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/parse.c')
-rw-r--r--Src/parse.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/Src/parse.c b/Src/parse.c
index 83e87afed..b0de9a863 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -2030,10 +2030,21 @@ par_simple(int *cmplx, int nr)
/* Unnamed function */
int parg = ecadd(0);
ecadd(0);
- while (tok == STRING) {
- ecstr(tokstr);
- argc++;
- zshlex();
+ while (tok == STRING || IS_REDIROP(tok)) {
+ if (tok == STRING)
+ {
+ ecstr(tokstr);
+ argc++;
+ zshlex();
+ } else {
+ *cmplx = c = 1;
+ nrediradd = par_redir(&r, NULL);
+ p += nrediradd;
+ if (ppost)
+ ppost += nrediradd;
+ sr += nrediradd;
+ parg += nrediradd;
+ }
}
if (argc > 0)
*cmplx = 1;