Fix quote handling during tokenization
authorLukas Jiriste <ljiriste@student.42prague.com>
Thu, 27 Jun 2024 07:15:31 +0000 (09:15 +0200)
committerLukas Jiriste <ljiriste@student.42prague.com>
Thu, 27 Jun 2024 07:15:31 +0000 (09:15 +0200)
src/tokenization.c

index d92a65aff697578cd24ef9db762ca2abe54e309d..b8c350487f3fe74e7fc848a31bebae43a904787f 100644 (file)
@@ -179,6 +179,7 @@ char        *continue_input(char *line, size_t *i)
 {
        free(line);
        *i = 0;
+       ft_printf("> ");
        return (get_next_line(STDIN_FILENO));
 }
 
@@ -186,11 +187,14 @@ char      *continue_input(char *line, size_t *i)
 
 void   handle_quote(t_vec *current_token, char **line, char quote_char, size_t *i)
 {
+       ft_vec_append(current_token, line[0] + (*i)++);
        if (quote_char == '\\')
        {
-               ++*i;
                if (line[0][*i] == '\n')
+               {
+                       ft_vec_erase(current_token, current_token->size - 1, NULL);
                        *line = continue_input(*line, i);
+               }
                else
                        ft_vec_append(current_token, line[0] + (*i)++);
                return ;
@@ -202,6 +206,7 @@ void        handle_quote(t_vec *current_token, char **line, char quote_char, size_t *i)
                else
                        ft_vec_append(current_token, line[0] + (*i)++);
        }
+       ft_vec_append(current_token, line[0] + (*i)++);
        return ;
 }