projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BSD 4_3_Tahoe release
[unix-history]
/
usr
/
src
/
bin
/
sh
/
service.c
diff --git
a/usr/src/bin/sh/service.c
b/usr/src/bin/sh/service.c
index
8426c40
..
ee30f82
100644
(file)
--- a/
usr/src/bin/sh/service.c
+++ b/
usr/src/bin/sh/service.c
@@
-1,4
+1,6
@@
-/* service.c 4.1 82/05/07 */
+#ifndef lint
+static char sccsid[] = "@(#)service.c 4.5 4/24/88";
+#endif
#
/*
#
/*
@@
-18,6
+20,7
@@
PROC VOID gsort();
INT errno;
STRING sysmsg[];
INT errno;
STRING sysmsg[];
+INT num_sysmsg;
/* fault handling */
#define ENOMEM 12
/* fault handling */
#define ENOMEM 12
@@
-237,7
+240,11
@@
VOID await(i)
BEGIN
REG INT *pw=pwlist;
BEGIN
REG INT *pw=pwlist;
- p=wait(&w);
+ IF setjmp(INTbuf) == 0
+ THEN trapjmp[INTR] = 1; p=wait(&w);
+ ELSE p = -1;
+ FI
+ trapjmp[INTR] = 0;
WHILE pw <= &pwlist[ipwc]
DO IF *pw==p
THEN *pw=0; pwc--;
WHILE pw <= &pwlist[ipwc]
DO IF *pw==p
THEN *pw=0; pwc--;
@@
-255,8
+262,10
@@
VOID await(i)
THEN prs("ptrace: ");
sig = w_hi;
FI
THEN prs("ptrace: ");
sig = w_hi;
FI
- IF sysmsg[sig]
- THEN IF i!=p ORF (flags&prompt)==0 THEN prp(); prn(p); blank() FI
+ IF sig < num_sysmsg ANDF sysmsg[sig]
+ THEN IF i!=p ORF (flags&prompt)==0
+ THEN prp(); prn(p); blank()
+ FI
prs(sysmsg[sig]);
IF w&0200 THEN prs(coredump) FI
FI
prs(sysmsg[sig]);
IF w&0200 THEN prs(coredump) FI
FI
@@
-383,7
+392,7
@@
LOCAL INT split(s)
ELIF c==0
THEN s--;
FI
ELIF c==0
THEN s--;
FI
- IF c=expand((
argp=endstak(argp
))->argval,0)
+ IF c=expand((
(ARGPTR)(argp=endstak(argp)
))->argval,0)
THEN count += c;
ELSE /* assign(&fngnod, argp->argval); */
makearg(argp); count++;
THEN count += c;
ELSE /* assign(&fngnod, argp->argval); */
makearg(argp); count++;