intra to gitea
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* signals.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: tordner <[email protected]> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/01/27 00:00:00 by lfirmin #+# #+# */
|
||||
/* Updated: 2025/06/02 01:05:49 by tordner ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "../../includes/minishell.h"
|
||||
|
||||
int g_signal = 0;
|
||||
|
||||
void if_sigint(int sig)
|
||||
{
|
||||
g_signal = 128 + sig;
|
||||
rl_done = 1;
|
||||
}
|
||||
|
||||
void set_status_if_signal(t_shell *shell)
|
||||
{
|
||||
shell->exit_status = g_signal;
|
||||
g_signal = 0;
|
||||
}
|
||||
|
||||
void set_signal_child(void)
|
||||
{
|
||||
rl_event_hook = sig_event;
|
||||
signal(SIGQUIT, SIG_DFL);
|
||||
signal(SIGINT, SIG_DFL);
|
||||
signal(SIGTSTP, SIG_IGN);
|
||||
}
|
||||
|
||||
void set_signal_parent_exec(void)
|
||||
{
|
||||
struct sigaction sa;
|
||||
struct sigaction sb;
|
||||
|
||||
rl_event_hook = sig_event;
|
||||
ft_memset(&sa, 0, sizeof(sa));
|
||||
sa.sa_handler = handle_signal_parent;
|
||||
sa.sa_flags = SA_RESTART;
|
||||
sigaction(SIGINT, &sa, NULL);
|
||||
ft_memset(&sb, 0, sizeof(sb));
|
||||
sb.sa_handler = handle_signal_parent;
|
||||
sb.sa_flags = SA_RESTART;
|
||||
sigaction(SIGQUIT, &sb, NULL);
|
||||
}
|
||||
|
||||
void set_signal_parent(void)
|
||||
{
|
||||
struct sigaction sa;
|
||||
|
||||
rl_event_hook = sig_event;
|
||||
ft_memset(&sa, 0, sizeof(sa));
|
||||
sa.sa_handler = if_sigint;
|
||||
sa.sa_flags = SA_RESTART;
|
||||
sigaction(SIGINT, &sa, NULL);
|
||||
signal(SIGQUIT, SIG_IGN);
|
||||
signal(SIGTSTP, SIG_IGN);
|
||||
}
|
||||
Reference in New Issue
Block a user