diff options
Diffstat (limited to 'src/tokenizer.c')
| -rw-r--r-- | src/tokenizer.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/tokenizer.c b/src/tokenizer.c index d7a96f7..e202de6 100644 --- a/src/tokenizer.c +++ b/src/tokenizer.c @@ -13,6 +13,26 @@ #include "minishell.h" #include "token.h" +t_token *reverse_token_list(t_token *head) +{ + t_token *prev; + t_token *current; + t_token *next; + + prev = NULL; + current = head; + next = NULL; + while (current != NULL) + { + next = current->previous; + current->next = prev; + current->previous = next; + prev = current; + current = next; + } + return (prev); +} + void print_token(t_token *token) { if (DEBUG) @@ -77,11 +97,11 @@ void handle_special_chars(char *s, int *i, int *start, t_token **token_list) *token_list = new_token(PIPE_TOKEN, *token_list, NULL); else if (s[*i] == '\n') *token_list = new_token(NEWLINE_TOKEN, *token_list, NULL); - print_token(*token_list); if (s[*i] == '<' && s[*i + 1] == '<') (*i)++; if (s[*i] == '>' && s[*i + 1] == '>') (*i)++; + print_token(*token_list); *start = *i + 1; } @@ -111,6 +131,5 @@ void tokenizer(char *s, t_token **token_list, char quote_check) pos = i + 1; } } - while ((*token_list)->previous) - *token_list = (*token_list)->previous; + *token_list = reverse_token_list(*token_list); } |
