/* ************************************************************************** */ /* */ /* :::::::: */ /* signal.c :+: :+: */ /* +:+ */ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/19 12:18:47 by whaffman #+# #+# */ /* Updated: 2025/02/19 17:30:12 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ #include "minishell.h" void sigint_minishell_handler(int signum) { (void)signum; ft_putstr_fd("\n", 1); rl_on_new_line(); rl_replace_line("", 0); rl_redisplay(); } void sigint_heredoc_handler(int signum) { (void)signum; ft_putstr_fd("\n", 1); rl_on_new_line(); rl_replace_line("", 0); exit(130); } void sig_parent_handler(int signum) { (void)signum; ft_putstr_fd("\n", 1); } void signal_init_minishell(void) { signal(SIGINT, sigint_minishell_handler); signal(SIGQUIT, SIG_IGN); } void signal_init_parent(void) { signal(SIGINT, sig_parent_handler); signal(SIGQUIT, sig_parent_handler); } void signal_init_child(void) { signal(SIGINT, SIG_DFL); signal(SIGQUIT, SIG_DFL); } void signal_init_heredoc(void) { signal(SIGINT, sigint_heredoc_handler); signal(SIGQUIT, SIG_IGN); }