aboutsummaryrefslogtreecommitdiff
path: root/src/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse')
-rwxr-xr-xsrc/parse/parse.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/parse/parse.c b/src/parse/parse.c
index 36e603a..795afc7 100755
--- a/src/parse/parse.c
+++ b/src/parse/parse.c
@@ -34,16 +34,19 @@ t_ret *parse(t_ftlst *input)
}
else if (parse_redir_true_false(tag))
{
- ret->ast = push_redir(ret->ast, ret->rest);
- ret->rest = ret->rest->next;
while(ret->rest != NULL)
{
ret->ast = push_redir(ret->ast, ret->rest);
+ ret->rest = ret->rest->next;
+ ret->ast = push_redir(ret->ast, ret->rest);
tag = ((t_token *)ret->rest->data)->tag;
- if (tag & TAG_IS_STR && tag & TAG_STICK)
+ if ((tag & TAG_IS_STR && tag & TAG_STICK) || tag == TAG_IS_REDIR)
ret->rest = ret->rest->next;
else
+ {
+ ret->rest = ret->rest->next;
break;
+ }
}
}
}