42_minishell/src/signals.c
mcolonna 0898d3b79a [ADD] signals handler *
also reorganize the code
2024-06-18 15:43:22 +02:00

54 lines
1.7 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* signals.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/12 14:04:30 by mcolonna #+# #+# */
/* Updated: 2024/06/18 15:40:09 by mcolonna ### ########.fr */
/* */
/* ************************************************************************** */
#include "include.h"
static void handle_sigint(int _)
{
(void)_;
print_line(fatal_error, 2, "");
rl_on_new_line();
rl_replace_line("", 0);
rl_redisplay();
}
void handle_signals(void)
{
struct sigaction sa;
sa.sa_flags = SA_RESTART;
sa.sa_handler = handle_sigint;
sigemptyset(&sa.sa_mask);
if (sigaction(SIGINT, &sa, NULL) == -1)
fatal_error(NULL);
sa.sa_flags = 0;
sa.sa_handler = SIG_IGN;
sigemptyset(&sa.sa_mask);
if (sigaction(SIGQUIT, &sa, NULL) == -1)
fatal_error(NULL);
}
void handle_signals_default(void)
{
struct sigaction sa;
sa.sa_flags = 0;
sa.sa_handler = SIG_DFL;
sigemptyset(&sa.sa_mask);
if (sigaction(SIGINT, &sa, NULL) == -1)
fatal_error(NULL);
sa.sa_flags = 0;
sa.sa_handler = SIG_DFL;
sigemptyset(&sa.sa_mask);
if (sigaction(SIGQUIT, &sa, NULL) == -1)
fatal_error(NULL);
}