diff options
Diffstat (limited to 'src/parse')
| -rwxr-xr-x | src/parse/parse.c | 9 |
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; + } } } } |
