URI: 
       tcall exit rather than _exits inside exits, so that the c library atexit handlers get a chance to run. - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 1555bd7aaad44bb26e0442a6798671be636df5b3
   DIR parent 268fa933851bab18609b69064e1cc4299f7de32d
  HTML Author: rsc <devnull@localhost>
       Date:   Wed, 26 Nov 2003 00:48:56 +0000
       
       call exit rather than _exits inside exits,
       so that the c library atexit handlers get
       a chance to run.
       
       Diffstat:
         M src/cmd/dict/dict.c                 |      18 +++++++++---------
         M src/lib9/atexit.c                   |       2 +-
         D src/lib9/exits.c                    |      22 ----------------------
       
       3 files changed, 10 insertions(+), 32 deletions(-)
       ---
   DIR diff --git a/src/cmd/dict/dict.c b/src/cmd/dict/dict.c
       t@@ -59,18 +59,18 @@ void
        main(int argc, char **argv)
        {
                int i, cmd, kflag;
       -        char *line, *p;
       +        char *line, *p, *root;
        
                Binit(&binbuf, 0, OREAD);
                Binit(&boutbuf, 1, OWRITE);
                kflag = 0;
                line = 0;
                dict = 0;
       -        p = getenv("PLAN9");
       -        if(p == nil)
       -                p = "/usr/local/plan9";
       -        if(chdir(p) < 0)
       -                sysfatal("chdir %s: %r", p);
       +        root = getenv("PLAN9");
       +        if(root == nil)
       +                root = "/usr/local/plan9";
       +        if(chdir(root) < 0)
       +                sysfatal("chdir %s: %r", root);
        
                for(i=0; dicts[i].name; i++){
                        if(access(dicts[i].path, 0)>=0 && access(dicts[i].indexpath, 0)>=0){
       t@@ -126,12 +126,12 @@ main(int argc, char **argv)
                }
                bdict = Bopen(dict->path, OREAD);
                if(!bdict) {
       -                err("can't open dictionary %s/%s", p, dict->path);
       +                err("can't open dictionary %s/%s", root, dict->path);
                        exits("nodict");
                }
                bindex = Bopen(dict->indexpath, OREAD);
                if(!bindex) {
       -                err("can't open index %s/%s", p, dict->indexpath);
       +                err("can't open index %s/%s", root, dict->indexpath);
                        exits("noindex");
                }
                indextop = Bseek(bindex, 0L, 2);
       t@@ -227,10 +227,10 @@ execcmd(int cmd)
                        doall = 0;
                        cur = dot->cur;
                }
       -
                if(debug && doall && cmd == 'a')
                        Bprint(bout, "%d entries, cur=%d\n", dot->n, cur+1);
                for(;;){
       +print("execcmd dot->n %d\n", dot->n);
                        if(cur >= dot->n)
                                break;
                        if(doall) {
   DIR diff --git a/src/lib9/atexit.c b/src/lib9/atexit.c
       t@@ -50,5 +50,5 @@ exits(char *s)
                                onex[i].f = 0;
                                (*f)();
                        }
       -        _exits(s);
       +        exit(s && *s ? 1 : 0);
        }
   DIR diff --git a/src/lib9/exits.c b/src/lib9/exits.c
       t@@ -1,22 +0,0 @@
       -#include <u.h>
       -#include <libc.h>
       -
       -extern void _privdie(void);
       -
       -void
       -exits(char *s)
       -{
       -        _privdie();
       -        if(s && *s)
       -                exit(1);
       -        exit(0);
       -}
       -
       -void
       -_exits(char *s)
       -{
       -        _privdie();
       -        if(s && *s)
       -                _exit(1);
       -        _exit(0);
       -}