From 76bd3f4e74c108e2d7cad66bfebd629c256c45f9 Mon Sep 17 00:00:00 2001 From: dayano Date: Sun, 18 May 2025 15:06:00 +0900 Subject: [PATCH] fix redirect --- src/invoke_cmd/invoke_command.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/invoke_cmd/invoke_command.c b/src/invoke_cmd/invoke_command.c index 1a08f1e..3d8975f 100644 --- a/src/invoke_cmd/invoke_command.c +++ b/src/invoke_cmd/invoke_command.c @@ -66,22 +66,18 @@ int execute_builtin(t_cmd *cmd, t_minish *minish) int exec_unit_builtin(t_cmd *cmd, t_minish *minish) { t_cmd *builtin_cmd; + t_cmd *redir_cmd; bool redir_result; - redir_result = true; builtin_cmd = cmd; - if (cmd && cmd->next && is_redirect(cmd->next)) + redir_cmd = cmd->next; + while (redir_cmd && is_redirect(redir_cmd)) { - redir_result = redirect(cmd->next); - if (redir_result && cmd->next) - cmd = cmd->next; - else - return (print_error(cmd->argv[0]), EXIT_FAILURE); + redir_result = redirect(redir_cmd); + if (!redir_result) + return (print_error(builtin_cmd->argv[0]), EXIT_FAILURE); + redir_cmd = redir_cmd->next; } - if (cmd && cmd->next && is_redirect(cmd->next)) - redir_result = redirect(cmd->next); - if (!redir_result) - return (EXIT_FAILURE); return (execute_builtin(builtin_cmd, minish)); }