From b88d39d932392cc0fef2a7675b6866a7407e2404 Mon Sep 17 00:00:00 2001 From: Chavert Ter Maat Date: Thu, 24 Aug 2023 15:12:16 +0200 Subject: [PATCH 1/2] heredoc fix, builtin | not working --- src/executor/heredoc.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/executor/heredoc.c b/src/executor/heredoc.c index 734a865..e7dd919 100644 --- a/src/executor/heredoc.c +++ b/src/executor/heredoc.c @@ -1,32 +1,32 @@ -/* ************************************************************************** */ -/* */ -/* :::::::: */ -/* heredoc.c :+: :+: */ -/* +:+ */ -/* By: cter-maa +#+ */ -/* +#+ */ -/* Created: 2023/08/23 16:49:47 by cter-maa #+# #+# */ -/* Updated: 2023/08/24 11:35:51 by fhuisman ######## odam.nl */ -/* */ -/* ************************************************************************** */ - #include "../../include/minishell.h" static void here_wait(t_shell *shell, pid_t pid, int status) { if (waitpid(pid, &status, 0) == FAILED) - return (perror_update_status(shell, "waitpid")); + perror_exit_fork(shell, "waitpid"); if (WIFSIGNALED(status)) shell->status = g_status; else shell->status = WEXITSTATUS(status); } +static void sigint_handler_heredoc(int signum) +{ + (void) signum; + _exit(1); +} + +static void init_signals_heredoc(void) +{ + signal(SIGINT, &sigint_handler_heredoc); + signal(SIGTSTP, SIG_IGN); + signal(SIGQUIT, SIG_IGN); +} + static void write_to_pipe(t_shell *shell, char *delimiter, int pipe_fd) { char *line; - init_signals(HEREDOC); line = readline("> "); while (line && !(ft_strncmp(line, delimiter, ft_strlen(delimiter) + 1) == 0)) @@ -50,6 +50,8 @@ void create_heredoc(t_shell *shell, t_redir *redir) pid_t pid; status = 0; + if (redir->heredoc_read_end) + close(redir->heredoc_read_end); if (!redir->file || redir->file[0] == '\0') return (perror_update_status(shell, "close")); if (pipe(pipe_fd) == FAILED) @@ -59,12 +61,11 @@ void create_heredoc(t_shell *shell, t_redir *redir) return (perror_update_status(shell, "fork")); if (pid == SUCCESS) { - if (close(pipe_fd[READ_END] == FAILED)) - return (perror_update_status(shell, "close")); + init_signals_heredoc(); write_to_pipe(shell, redir->file, pipe_fd[WRITE_END]); } - else if (close(pipe_fd[WRITE_END]) == FAILED) + if (close(pipe_fd[WRITE_END]) == FAILED) perror_exit_fork(shell, "close"); here_wait(shell, pid, status); redir->heredoc_read_end = pipe_fd[READ_END]; -} +} \ No newline at end of file From e23ff8d80229a798b951889c34832e48f6bca936 Mon Sep 17 00:00:00 2001 From: Chavert Ter Maat Date: Thu, 24 Aug 2023 15:56:51 +0200 Subject: [PATCH 2/2] builtin bug in piping fixed --- libft/ft_printf/libftprintf.a | Bin 0 -> 11672 bytes libft/libft.a | Bin 0 -> 118176 bytes minishell | Bin 0 -> 51980 bytes src/executor/handle_multiple_commands.c | 12 +++++++++--- 4 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 libft/ft_printf/libftprintf.a create mode 100644 libft/libft.a create mode 100755 minishell diff --git a/libft/ft_printf/libftprintf.a b/libft/ft_printf/libftprintf.a new file mode 100644 index 0000000000000000000000000000000000000000..79ae65f0374b2be3669a967b14c7926f024ce2b1 GIT binary patch literal 11672 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 literal 0 HcmV?d00001 diff --git a/src/executor/handle_multiple_commands.c b/src/executor/handle_multiple_commands.c index 8461953..6051033 100644 --- a/src/executor/handle_multiple_commands.c +++ b/src/executor/handle_multiple_commands.c @@ -6,7 +6,7 @@ /* By: cter-maa +#+ */ /* +#+ */ /* Created: 2023/08/23 16:37:28 by cter-maa #+# #+# */ -/* Updated: 2023/08/24 13:35:27 by fhuisman ######## odam.nl */ +/* Updated: 2023/08/24 15:53:45 by cter-maa ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -48,7 +48,10 @@ static int execute_last_command(t_shell *shell, t_command *command, perror_exit_fork(shell, "dup2"); handle_redirection(shell, command, pid); if (check_if_builtin(command->args[0])) + { execute_builtin(shell, command); + _exit(0); + } else execute_non_builtin(shell, command); } @@ -62,18 +65,21 @@ static void execute_childs(t_shell *shell, t_command *command, { if (dup2(read_end, STDIN_FILENO) == FAILED) perror_exit_fork(shell, "dup2"); + handle_redirection(shell, command, 0); if (dup2(pipe_fd[WRITE_END], STDOUT_FILENO) == FAILED) perror_exit_fork(shell, "dup2"); - handle_redirection(shell, command, 0); if (check_if_builtin(command->args[0]) == TRUE) + { execute_builtin(shell, command); + _exit(0); + } else execute_non_builtin(shell, command); if (close(pipe_fd[WRITE_END]) == FAILED) perror_exit_fork(shell, "close"); } -static int_fast16_t create_forks(t_shell *shell, t_command *command, int read_end, +static int create_forks(t_shell *shell, t_command *command, int read_end, int *fd) { pid_t pid;