maxishell
Implementation of a shell for Linux-like systems
Loading...
Searching...
No Matches
signals.c File Reference
#include "signals.h"
#include <readline/readline.h>
#include <readline/history.h>
#include <unistd.h>
#include "libft.h"
Include dependency graph for signals.c:

Go to the source code of this file.

Functions

void signal_reset_prompt (int signo)
 
void set_signals_interactive (void)
 
void signal_print_newline (int signal)
 
void sigquit_ignore (void)
 
void set_signals_noninteractive (void)
 

Function Documentation

◆ set_signals_interactive()

void set_signals_interactive ( void  )

Definition at line 51 of file signals.c.

52{
53 struct sigaction a;
54
56 sigemptyset(&a.sa_mask);
57 a.sa_flags = 0;
58 a.sa_handler = *signal_reset_prompt;
59 a.sa_flags |= SA_RESTART;
60 sigaction(SIGINT, &a, NULL);
61}
void signal_reset_prompt(int signo)
Definition signals.c:25
void sigquit_ignore(void)
Definition signals.c:41

References signal_reset_prompt(), and sigquit_ignore().

Referenced by main_loop().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_signals_noninteractive()

void set_signals_noninteractive ( void  )

Definition at line 63 of file signals.c.

64{
65 struct sigaction a;
66
67 sigemptyset(&a.sa_mask);
68 a.sa_flags = 0;
69 a.sa_handler = &signal_print_newline;
70 sigaction(SIGINT, &a, NULL);
71 a.sa_handler = SIG_IGN;
72 sigaction(SIGQUIT, &a, NULL);
73}
void signal_print_newline(int signal)
Definition signals.c:34

References signal_print_newline().

Referenced by main_loop().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ signal_print_newline()

void signal_print_newline ( int  signal)

Definition at line 34 of file signals.c.

35{
36 (void)signal;
37 write(STDOUT_FILENO, "\n", 1);
38 rl_on_new_line();
39}

Referenced by set_signals_noninteractive().

Here is the caller graph for this function:

◆ signal_reset_prompt()

void signal_reset_prompt ( int  signo)

Definition at line 25 of file signals.c.

26{
27 (void)signo;
28 write(1, "\n", 1);
29 rl_on_new_line();
30 rl_replace_line("", 0);
31 rl_redisplay();
32}

Referenced by set_signals_interactive().

Here is the caller graph for this function:

◆ sigquit_ignore()

void sigquit_ignore ( void  )

Definition at line 41 of file signals.c.

42{
43 struct sigaction a;
44
45 sigemptyset(&a.sa_mask);
46 a.sa_flags = 0;
47 a.sa_handler = SIG_IGN;
48 sigaction(SIGQUIT, &a, NULL);
49}

Referenced by set_signals_interactive().

Here is the caller graph for this function: