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_2 release
[unix-history]
/
usr
/
src
/
bin
/
sh
/
fault.c
diff --git
a/usr/src/bin/sh/fault.c
b/usr/src/bin/sh/fault.c
index
534bb44
..
8207b74
100644
(file)
--- a/
usr/src/bin/sh/fault.c
+++ b/
usr/src/bin/sh/fault.c
@@
-1,4
+1,6
@@
-/* fault.c 4.1 82/05/07 */
+#ifndef lint
+static char sccsid[] = "@(#)fault.c 4.3 8/11/83";
+#endif
#
/*
#
/*
@@
-14,6
+16,7
@@
STRING trapcom[MAXTRAP];
BOOL trapflg[MAXTRAP];
STRING trapcom[MAXTRAP];
BOOL trapflg[MAXTRAP];
+BOOL trapjmp[MAXTRAP];
/* ======== fault handling routines ======== */
/* ======== fault handling routines ======== */
@@
-23,7
+26,6
@@
VOID fault(sig)
{
REG INT flag;
{
REG INT flag;
- signal(sig,fault);
IF sig==MEMF
THEN IF setbrk(brkincr) == -1
THEN error(nospace);
IF sig==MEMF
THEN IF setbrk(brkincr) == -1
THEN error(nospace);
@@
-36,6
+38,11
@@
VOID fault(sig)
trapnote |= flag;
trapflg[sig] |= flag;
FI
trapnote |= flag;
trapflg[sig] |= flag;
FI
+ IF trapjmp[sig] ANDF sig==INTR
+ THEN
+ trapjmp[sig] = 0;
+ longjmp(INTbuf, 1);
+ FI
}
stdsigs()
}
stdsigs()