call exit rather than _exits inside exits,
so that the c library atexit handlers get a chance to run.
This commit is contained in:
parent
268fa93385
commit
1555bd7aaa
3 changed files with 10 additions and 32 deletions
|
|
@ -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){
|
||||
|
|
@ -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);
|
||||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -50,5 +50,5 @@ exits(char *s)
|
|||
onex[i].f = 0;
|
||||
(*f)();
|
||||
}
|
||||
_exits(s);
|
||||
exit(s && *s ? 1 : 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue