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
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit 1555bd7aaad44bb26e0442a6798671be636df5b3
parent 268fa933851bab18609b69064e1cc4299f7de32d
Author: rsc 
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(-)
---
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) {
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);
 }
diff --git a/src/lib9/exits.c b/src/lib9/exits.c
t@@ -1,22 +0,0 @@
-#include 
-#include 
-
-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);
-}