aboutsummaryrefslogtreecommitdiff
path: root/src/repl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/repl.c')
-rw-r--r--src/repl.c36
1 files changed, 9 insertions, 27 deletions
diff --git a/src/repl.c b/src/repl.c
index 4292197..5079ee8 100644
--- a/src/repl.c
+++ b/src/repl.c
@@ -6,56 +6,38 @@
/* By: chuhlig <chuhlig@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/24 16:07:04 by dkaiser #+# #+# */
-/* Updated: 2025/01/14 14:53:29 by dkaiser ### ########.fr */
+/* Updated: 2025/01/14 15:39:58 by chuhlig ### ########.fr */
/* */
/* ************************************************************************** */
#include "../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 repl(const char *prompt, t_env **env)
+void repl(const char *prompt, t_env **env, int *promptflag)
{
char *input;
t_token *token_list;
t_list *lines;
+ (*promptflag)++;
while (1)
{
input = readline(prompt);
if (input == NULL)
- return ;
+ {
+ if (*promptflag > 1)
+ (*promptflag)--;
+ printf("exit\n");
+ break ;
+ }
if (input[0] == '\0')
continue ;
add_history(input);
token_list = NULL;
tokenizer(input, &token_list, '\0');
- token_list = reverse_token_list(token_list);
lines = parse(token_list, env);
if (lines)
- {
- print_ast(lines->content);
set_return_code(eval(lines->content, env), env);
- }
free(input);
}
}