From 992f02cded5b43fac2505108b23bfd2f498f6100 Mon Sep 17 00:00:00 2001 From: tom moron Date: Mon, 29 Apr 2024 22:12:46 +0200 Subject: [PATCH] fix quelques trucs --- srcs/builtins.c | 12 +++++------- srcs/echo.c | 4 ++-- srcs/exec_bonus.c | 5 +++-- srcs/exit.c | 4 ++-- srcs/lst_env.c | 5 +++-- srcs/minishell.h | 3 ++- todo | 3 --- 7 files changed, 17 insertions(+), 19 deletions(-) diff --git a/srcs/builtins.c b/srcs/builtins.c index 4bd1df5..dff9cf8 100755 --- a/srcs/builtins.c +++ b/srcs/builtins.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/05 18:20:21 by marde-vr #+# #+# */ -/* Updated: 2024/04/23 19:56:00 by tomoron ### ########.fr */ +/* Updated: 2024/04/29 21:47:25 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,10 +14,10 @@ int cmd_is_forkable_builtin(char *cmd_token) { - if (!ft_strcmp(cmd_token, "echo") || !ft_strcmp(cmd_token, "ret") - || !ft_strcmp(cmd_token, "env") || !ft_strcmp(cmd_token, "exit") - || !ft_strcmp(cmd_token, "pwd") || !ft_strcmp(cmd_token, "cd") - || !ft_strcmp(cmd_token, "export") || !ft_strcmp(cmd_token, "unset")) + if (!ft_strcmp(cmd_token, "echo") || !ft_strcmp(cmd_token, "env") + || !ft_strcmp(cmd_token, "exit") || !ft_strcmp(cmd_token, "pwd") + || !ft_strcmp(cmd_token, "cd") || !ft_strcmp(cmd_token, "export") + || !ft_strcmp(cmd_token, "unset")) return (1); return (0); } @@ -48,8 +48,6 @@ int exec_builtin(t_msh *msh) return (0); if (!ft_strcmp(msh->tokens->value, "echo")) g_return_code = echo(msh->tokens->next); - else if (!ft_strcmp(msh->tokens->value, "ret")) - g_return_code = ft_atoi(msh->tokens->next->value); else if (!ft_strcmp(msh->tokens->value, "env")) g_return_code = print_env(msh->env); else if (!ft_strcmp(msh->tokens->value, "exit")) diff --git a/srcs/echo.c b/srcs/echo.c index be19631..076e824 100755 --- a/srcs/echo.c +++ b/srcs/echo.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/07 15:30:37 by tomoron #+# #+# */ -/* Updated: 2024/04/29 21:42:38 by tomoron ### ########.fr */ +/* Updated: 2024/04/29 22:11:06 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,7 +42,7 @@ int echo(t_token *args) if (!args->value[i] && i > 1) put_nl = 0; else - break; + break ; args = args->next; } put_args(args); diff --git a/srcs/exec_bonus.c b/srcs/exec_bonus.c index bfdc482..f493d1c 100755 --- a/srcs/exec_bonus.c +++ b/srcs/exec_bonus.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/28 13:50:14 by tomoron #+# #+# */ -/* Updated: 2024/04/26 15:26:41 by tomoron ### ########.fr */ +/* Updated: 2024/04/29 22:06:15 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -75,6 +75,7 @@ void exec_command(t_msh *msh, int i, int cmd_count) get_redirections(msh, msh->cmds); if (msh->in_fd != -2) { + msh->last_return_code = g_return_code; g_return_code = 0; msh->fds[i] = ft_calloc(2, sizeof(int *)); if (!msh->fds[i]) @@ -121,8 +122,8 @@ void exec_commands(t_msh *msh) if (!msh->tokens && !is_parenthesis(msh->cmds)) { - g_return_code = 0; get_redirections(msh, msh->cmds); + g_return_code = (msh->in_fd == -1 || msh->out_fd == -1); if (msh->in_fd > 2) close(msh->in_fd); if (msh->out_fd > 2) diff --git a/srcs/exit.c b/srcs/exit.c index 0bcdfc8..42d63b4 100755 --- a/srcs/exit.c +++ b/srcs/exit.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/07 16:04:11 by tomoron #+# #+# */ -/* Updated: 2024/04/26 10:49:17 by marde-vr ### ########.fr */ +/* Updated: 2024/04/29 21:54:57 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,7 +39,7 @@ void get_exit_bt_return_code(t_msh *msh, int *exit_code) else if (cur_cmd) *exit_code = (unsigned char)ft_atoi(cur_cmd->value); else - *exit_code = g_return_code; + *exit_code = msh->last_return_code; } int exit_bt(t_msh *msh) diff --git a/srcs/lst_env.c b/srcs/lst_env.c index 3407906..92e3f4a 100755 --- a/srcs/lst_env.c +++ b/srcs/lst_env.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/06 20:46:19 by tomoron #+# #+# */ -/* Updated: 2024/04/25 18:53:51 by marde-vr ### ########.fr */ +/* Updated: 2024/04/29 22:11:22 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,7 +35,8 @@ int print_env(t_env *env) { while (env) { - ft_printf("%s=%s\n", env->name, env->value); + if (*env->value) + ft_printf("%s=%s\n", env->name, env->value); env = env->next; } return (0); diff --git a/srcs/minishell.h b/srcs/minishell.h index 52adb0c..21bdf3b 100755 --- a/srcs/minishell.h +++ b/srcs/minishell.h @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/04 17:31:38 by tomoron #+# #+# */ -/* Updated: 2024/04/29 11:12:35 by marde-vr ### ########.fr */ +/* Updated: 2024/04/29 21:50:52 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -73,6 +73,7 @@ typedef struct s_msh int in_fd; int echoctl; int out_fd; + int last_return_code; int locked_return_code; char *here_doc_filename; } t_msh; diff --git a/todo b/todo index 1253966..1c803e6 100644 --- a/todo +++ b/todo @@ -1,6 +1,3 @@ -- cat filenotfound -> exit # (exit avec le status 0 et pas 1) -- < filenotfound # (status code pas a 1) -- export aaa -> env # (variable aaa qui s'affiche) - .. # (pas de command not found) - cat Makefile | commandnotfound | cat - cat < Makefile | rev | cat -e | rev | cat