Fixed imagined bug in subject pattern match about
[unix-history] / .ref-BSD-3 / usr / src / libF77 / main.c
CommitLineData
0ee0e326
BJ
1/* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */
2
3#include <stdio.h>
4#include <signal.h>
5
6int xargc;
7char **xargv;
8
9main(argc, argv, arge)
10int argc;
11char **argv;
12char **arge;
13{
14int sigfdie(), sigidie(), sigqdie(), sigindie(), sigtdie();
15
16xargc = argc;
17xargv = argv;
18signal(SIGFPE, sigfdie); /* ignore underflow, enable overflow */
19signal(SIGIOT, sigidie);
20signal(SIGQUIT,sigqdie);
21signal(SIGINT, sigindie);
22signal(SIGTERM,sigtdie);
23
24#ifdef pdp11
25 ldfps(01200); /* detect overflow as an exception */
26#endif
27
28f_init();
29MAIN__();
30f_exit();
31}
32
33
34static sigfdie()
35{
36sigdie("Floating Exception", 1);
37}
38
39
40
41static sigidie()
42{
43sigdie("IOT Trap", 1);
44}
45
46
47static sigqdie()
48{
49sigdie("Quit signal", 1);
50}
51
52
53
54static sigindie()
55{
56sigdie("Interrupt", 0);
57}
58
59
60
61static sigtdie()
62{
63sigdie("Killed", 0);
64}
65
66
67
68static sigdie(s, kill)
69register char *s;
70int kill;
71{
72/* print error message, then clear buffers */
73fflush(stderr);
74fprintf(stderr, "%s\n", s);
75f_exit();
76fflush(stderr);
77
78if(kill)
79 {
80 /* now get a core */
81 signal(SIGIOT, 0);
82 abort();
83 }
84else
85 exit(1);
86}