plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit eadb18a3357b9b735b2f7da478854a39fb0c73c6
parent 5cc53af92d6bfae8b930d3c9154c8ed44e1feb09
Author: rsc <devnull@localhost>
Date:   Sun, 12 Feb 2006 19:40:55 +0000

add exitcode

Diffstat:
Minclude/libc.h | 1+
Msrc/lib9/_exits.c | 6+++---
Msrc/lib9/atexit.c | 4+++-
3 files changed, 7 insertions(+), 4 deletions(-)

diff --git 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 @@ -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 @@ -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)); }