66 lines
1.7 KiB
C
66 lines
1.7 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* :::::::: */
|
|
/* signal.c :+: :+: */
|
|
/* +:+ */
|
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
|
/* +#+ */
|
|
/* 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);
|
|
}
|