diff options
| author | nass1pro <nass1pro@gmail.com> | 2020-06-16 14:35:15 +0200 |
|---|---|---|
| committer | nass1pro <nass1pro@gmail.com> | 2020-06-16 14:35:15 +0200 |
| commit | 0fa76e9e49a70ab9acb128845b3b0b09607133a8 (patch) | |
| tree | 5c4ce0a5f154af200f5c3b8146e1ad8b53b3fdf7 /src | |
| parent | 904a7c07b31267b2336b144336fc6ff54627f6d0 (diff) | |
| download | minishell-0fa76e9e49a70ab9acb128845b3b0b09607133a8.tar.gz minishell-0fa76e9e49a70ab9acb128845b3b0b09607133a8.tar.bz2 minishell-0fa76e9e49a70ab9acb128845b3b0b09607133a8.zip | |
Update redire in parse
Diffstat (limited to 'src')
| -rw-r--r-- | src/lexer/lexer_utils.c | 4 | ||||
| -rw-r--r-- | src/lexer/trim.c | 1 | ||||
| -rw-r--r-- | src/main.c | 5 | ||||
| -rwxr-xr-x | src/parse/parse.c | 13 |
4 files changed, 12 insertions, 11 deletions
diff --git a/src/lexer/lexer_utils.c b/src/lexer/lexer_utils.c index 1b13eaa..616c0d3 100644 --- a/src/lexer/lexer_utils.c +++ b/src/lexer/lexer_utils.c @@ -63,7 +63,7 @@ static int lex_verif_simple_cote(char *input, int i) { ++i; if(input[i] == '\\') - i+=2; + i+=1; if(input[i] == '\'') break; } @@ -81,7 +81,7 @@ int lexer_verif_entre_cote(char *input, int i) while(input[i] != '"' && (input[i] != '\0')) { if (input[i] == '\\') - i += 2; + i += 1; ++i; } if (input[i + 1] == ' ') diff --git a/src/lexer/trim.c b/src/lexer/trim.c index 6c435d5..656fae6 100644 --- a/src/lexer/trim.c +++ b/src/lexer/trim.c @@ -48,6 +48,7 @@ t_ftlst *lexe_trim_out(t_ftlst *lst) while(lst != NULL) { tk = lst->data; + printf("%s\n",tk->content ); if (tk->tag & (TAG_STR_DOUBLE | TAG_STR_SINGLE)) { tk->content = del_quote(tk->content); @@ -40,11 +40,12 @@ int main(int argc, char **argv, char **envp) if (argc == 3 && ft_strcmp(argv[1], "-c") == 0) { + //printf("%s\n", argv[2]); t_ftlst *lex_out = lexer(ft_strdup(argv[2])); - //ft_lstiter(lex_out, token_debug); + ft_lstiter(lex_out, token_debug); - t_ret *ret = parse(lex_out); + t_ret *ret = parse(lex_out); printf("===========cmd=============\n"); while(ret->ast->cmd_argv != NULL) diff --git a/src/parse/parse.c b/src/parse/parse.c index 795afc7..d1303bc 100755 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -29,26 +29,25 @@ t_ret *parse(t_ftlst *input) if (parse_cmd_str_true_false(tag)) { ret->ast = push_cmd(ret->ast, ret->rest); - if (ret->rest != NULL) - ret->rest = ret->rest->next; } else if (parse_redir_true_false(tag)) { 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) || tag == TAG_IS_REDIR) + if (tag & TAG_IS_STR && tag & TAG_STICK) + ret->rest = ret->rest->next; + else if (tag & TAG_IS_REDIR) ret->rest = ret->rest->next; else { - ret->rest = ret->rest->next; + //ret->rest = ret->rest->next; break; } + tag = ((t_token *)ret->rest->data)->tag; } } + ret->rest = ret->rest->next; } // printf("===========cmd=============\n"); // while(ret->ast->cmd_argv != NULL) |
