/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ctrl.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: fgras-ca +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/15 17:55:28 by fgras-ca #+# #+# */ /* Updated: 2023/12/07 16:43:19 by fgras-ca ### ########.fr */ /* */ /* ************************************************************************** */ #include "../minishell.h" void handle_sigint(int sig) { (void)sig; write(STDOUT_FILENO, "\n", 1); rl_on_new_line(); rl_replace_line("", 0); rl_redisplay(); } void handle_sigquit(int sig) { (void)sig; printf("\b\b \b\b"); } void setup_signal_handlers(void) { struct sigaction sa_int; struct sigaction sa_quit; sa_int.sa_handler = handle_sigint; sigemptyset(&sa_int.sa_mask); sa_int.sa_flags = SA_RESTART; sigaction(SIGINT, &sa_int, NULL); sa_quit.sa_handler = handle_sigquit; sigemptyset(&sa_quit.sa_mask); sa_quit.sa_flags = SA_RESTART; sigaction(SIGQUIT, &sa_quit, NULL); }