From eadb18a3357b9b735b2f7da478854a39fb0c73c6 Mon Sep 17 00:00:00 2001 From: rsc Date: Sun, 12 Feb 2006 19:40:55 +0000 Subject: add exitcode --- include/libc.h | 1 + src/lib9/_exits.c | 6 +++--- src/lib9/atexit.c | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/libc.h b/include/libc.h index 10000b57..980a8d27 100644 --- a/include/libc.h +++ b/include/libc.h @@ -376,6 +376,7 @@ extern int dec16(uchar*, int, char*, int); extern int enc16(char*, int, uchar*, int); extern int encodefmt(Fmt*); extern int dirmodefmt(Fmt*); +extern int exitcode(char*); extern void exits(char*); extern double frexp(double, int*); extern ulong getcallerpc(void*); diff --git a/src/lib9/_exits.c b/src/lib9/_exits.c index 5e7c88ed..a17c25aa 100644 --- a/src/lib9/_exits.c +++ b/src/lib9/_exits.c @@ -4,7 +4,7 @@ void _exits(char *s) { - if(s && *s) - _exit(1); - _exit(0); + if(s == 0 || *s == 0) + _exit(0); + _exit(exitcode(s)); } diff --git a/src/lib9/atexit.c b/src/lib9/atexit.c index c5cdde1d..7fcf0f3c 100644 --- a/src/lib9/atexit.c +++ b/src/lib9/atexit.c @@ -50,5 +50,7 @@ exits(char *s) onex[i].f = 0; (*f)(); } - exit(s && *s ? 1 : 0); + if(s == 0 || *s == 0) + exit(0); + exit(exitcode(s)); } -- cgit v1.2.3