From d5c872709321602c603fbf31b8775c1ab2ad2b02 Mon Sep 17 00:00:00 2001 From: y-syo Date: Mon, 24 Jun 2024 13:05:47 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=94=A8=E3=80=8D=20fix(split=5Fcm?= =?UTF-8?q?d):=20fixed=20command=20execution=20+=20null=20return=20code=20?= =?UTF-8?q?no=20longer=20show?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exec/exec_split_cmd.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/exec/exec_split_cmd.c b/src/exec/exec_split_cmd.c index 1905052..3d28895 100644 --- a/src/exec/exec_split_cmd.c +++ b/src/exec/exec_split_cmd.c @@ -6,7 +6,7 @@ /* By: mmoussou infile, STDIN_FILENO); if (cmd->infile != STDIN_FILENO) close(cmd->infile); - status += dup2(cmd->outfile, STDOUT_FILENO); + if (status == -1) + exit(-1); + status = dup2(cmd->outfile, STDOUT_FILENO); if (cmd->outfile != STDOUT_FILENO) close(cmd->outfile); close(pipe_fd[0]); close(pipe_fd[1]); - if (status) - exit(-1); - execve(cmd->cmd, cmd->argv, env); + if (status != -1) + execve(cmd->cmd, cmd->argv, env); exit(-1); } return (0); @@ -85,6 +86,8 @@ void print_return_value(int return_code) if (WIFSIGNALED(return_code)) { code = WTERMSIG(return_code); + if (!sigmsg[code]) + return ; if (WCOREDUMP(return_code)) printf("minishell : %s %s\n", sigmsg[code], ERROR_COREDUMP); else