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)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int i, cmd, kflag;
|
int i, cmd, kflag;
|
||||||
char *line, *p;
|
char *line, *p, *root;
|
||||||
|
|
||||||
Binit(&binbuf, 0, OREAD);
|
Binit(&binbuf, 0, OREAD);
|
||||||
Binit(&boutbuf, 1, OWRITE);
|
Binit(&boutbuf, 1, OWRITE);
|
||||||
kflag = 0;
|
kflag = 0;
|
||||||
line = 0;
|
line = 0;
|
||||||
dict = 0;
|
dict = 0;
|
||||||
p = getenv("PLAN9");
|
root = getenv("PLAN9");
|
||||||
if(p == nil)
|
if(root == nil)
|
||||||
p = "/usr/local/plan9";
|
root = "/usr/local/plan9";
|
||||||
if(chdir(p) < 0)
|
if(chdir(root) < 0)
|
||||||
sysfatal("chdir %s: %r", p);
|
sysfatal("chdir %s: %r", root);
|
||||||
|
|
||||||
for(i=0; dicts[i].name; i++){
|
for(i=0; dicts[i].name; i++){
|
||||||
if(access(dicts[i].path, 0)>=0 && access(dicts[i].indexpath, 0)>=0){
|
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);
|
bdict = Bopen(dict->path, OREAD);
|
||||||
if(!bdict) {
|
if(!bdict) {
|
||||||
err("can't open dictionary %s/%s", p, dict->path);
|
err("can't open dictionary %s/%s", root, dict->path);
|
||||||
exits("nodict");
|
exits("nodict");
|
||||||
}
|
}
|
||||||
bindex = Bopen(dict->indexpath, OREAD);
|
bindex = Bopen(dict->indexpath, OREAD);
|
||||||
if(!bindex) {
|
if(!bindex) {
|
||||||
err("can't open index %s/%s", p, dict->indexpath);
|
err("can't open index %s/%s", root, dict->indexpath);
|
||||||
exits("noindex");
|
exits("noindex");
|
||||||
}
|
}
|
||||||
indextop = Bseek(bindex, 0L, 2);
|
indextop = Bseek(bindex, 0L, 2);
|
||||||
|
|
@ -227,10 +227,10 @@ execcmd(int cmd)
|
||||||
doall = 0;
|
doall = 0;
|
||||||
cur = dot->cur;
|
cur = dot->cur;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(debug && doall && cmd == 'a')
|
if(debug && doall && cmd == 'a')
|
||||||
Bprint(bout, "%d entries, cur=%d\n", dot->n, cur+1);
|
Bprint(bout, "%d entries, cur=%d\n", dot->n, cur+1);
|
||||||
for(;;){
|
for(;;){
|
||||||
|
print("execcmd dot->n %d\n", dot->n);
|
||||||
if(cur >= dot->n)
|
if(cur >= dot->n)
|
||||||
break;
|
break;
|
||||||
if(doall) {
|
if(doall) {
|
||||||
|
|
|
||||||
|
|
@ -50,5 +50,5 @@ exits(char *s)
|
||||||
onex[i].f = 0;
|
onex[i].f = 0;
|
||||||
(*f)();
|
(*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