Author | Jamozed <[email protected]> |
Date | 2021-03-30 08:57:34 |
Commit | 89d88c31e4685e1dedbcb1d4ffcb123f00febf52 |
Parent | 6fb6cdf3c2a00b9992af388fdb40c9dab63f6caf |
Cleanup error handling in main
Diffstat
M | src/main.c | | | 9 | +++++---- |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c index 5bd0101..27df818 100644 --- a/src/main.c +++ b/src/main.c @@ -54,23 +54,24 @@ static void reset(int signo); int main(int ac, char *av[]) { (void)(ac); signal(SIGINT, &reset); signal(SIGTSTP, SIG_IGN); signal(SIGQUIT, SIG_IGN); - if (errno) { warn("A: %s", serr()); } + if (errno) { warn("%s", serr()); } do { if (sigsetjmp(jmp, 1)) { fputc('\n', stdout); } jmpflag = true; char *line = lineread(); fputc('\n', stdout); - if (!line) { printf("NULL\n"); error(0, "%s", serr()); } + if (!line) { if (errno) { warn("%s", serr()); } break; } char **args = parse(line); free(line); - if (!args) { printf("PARSEFAIL\n"); error(1, "%s", serr()); } + if (!args) { if (errno) { warn("%s", serr()); } goto end; } _ret = execute(args); +end:; for (size_t i = 0; args[i]; ++i) { free(args[i]); } free(args); } while (_loop); - fputc('\n', stdout); return 0; + return warned; } static void reset(int signo) { (void)(signo);