From 810b21338a7b4a341e0298587f8a6a4f090913fd Mon Sep 17 00:00:00 2001 From: Trent Huber Date: Wed, 27 Aug 2025 16:16:07 -0400 Subject: [PATCH] Final clean up --- src/.gitignore | 2 +- src/builtins/fg.c | 16 +++++++--------- src/builtins/fg.h | 2 +- src/libbuiltins.a | Bin 78456 -> 0 bytes src/utils.c | 2 +- 5 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 src/libbuiltins.a diff --git a/src/.gitignore b/src/.gitignore index d08de4e..921c51a 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -1 +1 @@ -libbuiltin.a +libbuiltins.a diff --git a/src/builtins/fg.c b/src/builtins/fg.c index a868bf4..70fe125 100644 --- a/src/builtins/fg.c +++ b/src/builtins/fg.c @@ -46,14 +46,8 @@ static void waitall(int sig) { errno = e; } -void setsigchld(struct sigaction *act) { - if (sigaction(SIGCHLD, act, NULL) == -1) - fatal("Unable to install SIGCHLD handler"); -} - void initfg(void) { - if (tcgetattr(STDIN_FILENO, &canonical) == -1) - fatal("Unable to get default termios config"); + if (tcgetattr(STDIN_FILENO, &canonical) == -1) exit(errno); raw = canonical; raw.c_lflag &= ~(ICANON | ECHO | ISIG); if (!setconfig(&raw)) exit(EXIT_FAILURE); @@ -64,6 +58,11 @@ void initfg(void) { actignore.sa_handler = SIG_IGN; } +void setsigchld(struct sigaction *act) { + if (sigaction(SIGCHLD, act, NULL) == -1) + fatal("Unable to install SIGCHLD handler"); +} + int runfg(pid_t id) { struct bgjob job; @@ -92,9 +91,8 @@ int runfg(pid_t id) { if (sigaction(SIGTTOU, &actignore, NULL) == -1 || tcsetpgrp(STDIN_FILENO, getpgrp()) == -1 || sigaction(SIGTTOU, &actdefault, NULL) == -1) { - note("Unable to reclaim foreground; terminating"); deinit(); - exit(EXIT_FAILURE); + exit(errno); } if (tcgetattr(STDIN_FILENO, &job.config) == -1) note("Unable to save termios config of job %d", id); diff --git a/src/builtins/fg.h b/src/builtins/fg.h index 6436bc4..2d65274 100644 --- a/src/builtins/fg.h +++ b/src/builtins/fg.h @@ -1,7 +1,7 @@ extern struct termios canonical; extern struct sigaction actbg, actdefault; -void setsigchld(struct sigaction *act); void initfg(void); +void setsigchld(struct sigaction *act); int runfg(pid_t id); void deinitfg(void); diff --git a/src/libbuiltins.a b/src/libbuiltins.a deleted file mode 100644 index 7e5315913edd0485766bc0e97f1cda3280d2ae82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78456 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 QySk-$)5hzr*6SAj6M}D0`Tzg` diff --git a/src/utils.c b/src/utils.c index ddd4661..c4c8cff 100644 --- a/src/utils.c +++ b/src/utils.c @@ -44,7 +44,7 @@ void fatal(char *fmt, ...) { putchar('\n'); - exit(EXIT_FAILURE); + exit(errno); } void init(void) { -- 2.51.0