diff --git a/src/executing/here_doc/here_doc_utils.c b/src/executing/here_doc/here_doc_utils.c index 1ee2cc3..dcaa37c 100644 --- a/src/executing/here_doc/here_doc_utils.c +++ b/src/executing/here_doc/here_doc_utils.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* here_doc_utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: kcolin +#+ +:+ +#+ */ +/* By: jguelen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/02 14:36:33 by kcolin #+# #+# */ -/* Updated: 2025/05/05 11:33:36 by kcolin ### ########.fr */ +/* Updated: 2025/05/05 12:04:34 by jguelen ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/minishell.c b/src/minishell.c index 9af8f2c..30f9021 100644 --- a/src/minishell.c +++ b/src/minishell.c @@ -6,7 +6,7 @@ /* By: jguelen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/02 11:53:53 by kcolin #+# #+# */ -/* Updated: 2025/05/02 13:10:24 by jguelen ### ########.fr */ +/* Updated: 2025/05/02 17:38:40 by jguelen ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/sig/sig.c b/src/sig/sig.c index 2be7769..00d7250 100644 --- a/src/sig/sig.c +++ b/src/sig/sig.c @@ -6,7 +6,7 @@ /* By: jguelen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/02 12:16:37 by kcolin #+# #+# */ -/* Updated: 2025/05/02 13:01:42 by jguelen ### ########.fr */ +/* Updated: 2025/05/05 12:03:56 by jguelen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -57,7 +57,7 @@ int set_here_doc_mode_sig_handling(void) ft_bzero(&sig_act, sizeof(struct sigaction)); if (sigemptyset(&sig_act.sa_mask) == -1) return (-1); - sig_act.sa_sigaction = &sig_cmd; + sig_act.sa_sigaction = &sig_heredoc; sig_act.sa_flags |= SA_SIGINFO; if (sigaction(SIGINT, &sig_act, NULL) == -1) return (-1); diff --git a/src/sig/sig.h b/src/sig/sig.h index 32e1155..dde59ed 100644 --- a/src/sig/sig.h +++ b/src/sig/sig.h @@ -6,7 +6,7 @@ /* By: jguelen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/19 18:21:55 by jguelen #+# #+# */ -/* Updated: 2025/05/02 13:01:49 by jguelen ### ########.fr */ +/* Updated: 2025/05/05 12:03:51 by jguelen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,5 +28,6 @@ extern int g_signum; int set_interactive_mode_sig_handling(void); int set_exec_mode_sig_handling(void); int set_here_doc_mode_sig_handling(void); +void sig_heredoc(int signum, siginfo_t *siginfo, void *context); #endif diff --git a/src/sig/sig_handlers.c b/src/sig/sig_handlers.c index 16965b5..f5db905 100644 --- a/src/sig/sig_handlers.c +++ b/src/sig/sig_handlers.c @@ -6,7 +6,7 @@ /* By: jguelen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/17 12:01:39 by kcolin #+# #+# */ -/* Updated: 2025/05/02 13:01:15 by jguelen ### ########.fr */ +/* Updated: 2025/05/05 12:03:03 by jguelen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,3 +52,22 @@ void sig_cmd(int signum, siginfo_t *siginfo, void *context) } g_signum = signum; } + +void sig_heredoc(int signum, siginfo_t *siginfo, void *context) +{ + (void)context; + (void)siginfo; + if (signum == SIGQUIT) + { + ft_dprintf(STDERR_FILENO, "Quit (core dumped)\n"); + } + else if (signum == SIGINT) + { + ft_dprintf(STDOUT_FILENO, "^C\n"); + } + else + { + ft_printf("\n"); + } + g_signum = signum; +} \ No newline at end of file