diff options
Diffstat (limited to '02_exercise/shell.c')
-rw-r--r-- | 02_exercise/shell.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/02_exercise/shell.c b/02_exercise/shell.c index 03ff6b3..f32bb95 100644 --- a/02_exercise/shell.c +++ b/02_exercise/shell.c @@ -3,28 +3,16 @@ #include <string.h> #include <unistd.h> #include <stdbool.h> -#include <wait.h> #include <errno.h> #include "array.h" #include "process.h" -#include "prompt_utils.h" #include "builtins.h" +#include "prompt_utils.h" +#include "signal_handler.h" process *processes; -void signal_handler(int signal) { - printf("Received signal %d", signal); - if (signal == SIGINT) { - for (size_t i = 0; i < arrayLen(processes); ++i) { - pid_t pid = processes[i].pid; - if (pid != 0) { - kill(pid, SIGINT); - } - } - } -} - int main(void) { setvbuf(stderr, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); @@ -59,6 +47,8 @@ int main(void) { exit(-1); } + interrupt_issued = 0; + if (strspn(line, " \n\t") == strlen(line)) { // skip empty lines - empty being just spaces or tabs continue; |