Pristine Ack-5.5
[Ack-5.5.git] / util / cpp / error.c
1 /* $Id: error.c,v 1.9 1995/08/17 13:33:49 ceriel Exp $ */
2 /*
3  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
4  * See the copyright notice in the ACK home directory, in the file "Copyright".
5  */
6 /*      E R R O R   A N D  D I A G N O S T I C   R O U T I N E S        */
7
8 #include        <system.h>
9 #if __STDC__
10 #include        <stdarg.h>
11 #else
12 #include        <varargs.h>
13 #endif
14
15 #include        "errout.h"
16 #include        "LLlex.h"
17
18 /*      This file contains the (non-portable) error-message and diagnostic
19         functions.  Beware, they are called with a variable number of
20         arguments!
21 */
22
23 int err_occurred;
24
25 err_hdr(s)
26         char *s;
27 {
28         if (FileName) {
29                 fprint(ERROUT, "\"%s\", line %d: %s", FileName, LineNumber, s);
30         }
31         else    fprint(ERROUT, s);
32 }
33
34 #if __STDC__
35 /*VARARGS1*/
36 error(char *fmt, ...)
37 {
38         va_list ap;
39
40         va_start(ap, fmt);
41         err_hdr("");
42         err_occurred = 1;
43         doprnt(ERROUT, fmt, ap);
44         fprint(ERROUT, "\n");
45         va_end(ap);
46 }
47
48 /*VARARGS1*/
49 warning(char *fmt, ...)
50 {
51         va_list ap;
52
53         va_start(ap, fmt);
54         err_hdr("(warning) ");
55         doprnt(ERROUT, fmt, ap);
56         fprint(ERROUT, "\n");
57         va_end(ap);
58 }
59
60 /*VARARGS1*/
61 crash(char *fmt, ...)
62 {
63         va_list ap;
64
65         va_start(ap, fmt);
66         err_hdr("CRASH\007 ");
67         doprnt(ERROUT, fmt, ap);
68         fprint(ERROUT, "\n");
69         va_end(ap);
70         sys_stop(S_ABORT);
71 }
72
73 /*VARARGS1*/
74 fatal(char *fmt, ...)
75 {
76         va_list ap;
77
78         va_start(ap, fmt);
79         err_hdr("fatal error -- ");
80         doprnt(ERROUT, fmt, ap);
81         fprint(ERROUT, "\n");
82         va_end(ap);
83         sys_stop(S_EXIT);
84 }
85 #else /* __STDC__ */
86 /*VARARGS1*/
87 error(va_alist)
88         va_dcl
89 {
90         char *fmt;
91         va_list ap;
92
93         err_hdr("");
94         err_occurred = 1;
95         va_start(ap);
96         fmt = va_arg(ap, char *);
97         doprnt(ERROUT, fmt, ap);
98         fprint(ERROUT, "\n");
99         va_end(ap);
100 }
101
102 /*VARARGS1*/
103 warning(va_alist)
104         va_dcl
105 {
106         char *fmt;
107         va_list ap;
108
109         err_hdr("(warning) ");
110         va_start(ap);
111         fmt = va_arg(ap, char *);
112         doprnt(ERROUT, fmt, ap);
113         fprint(ERROUT, "\n");
114         va_end(ap);
115 }
116
117 /*VARARGS1*/
118 crash(va_alist)
119         va_dcl
120 {
121         char *fmt;
122         va_list ap;
123
124         err_hdr("CRASH\007 ");
125         va_start(ap);
126         fmt = va_arg(ap, char *);
127         doprnt(ERROUT, fmt, ap);
128         fprint(ERROUT, "\n");
129         va_end(ap);
130         sys_stop(S_ABORT);
131 }
132
133 /*VARARGS1*/
134 fatal(va_alist)
135         va_dcl
136 {
137         char *fmt;
138         va_list ap;
139
140         err_hdr("fatal error -- ");
141         va_start(ap);
142         fmt = va_arg(ap, char *);
143         doprnt(ERROUT, fmt, ap);
144         fprint(ERROUT, "\n");
145         va_end(ap);
146         sys_stop(S_EXIT);
147 }
148 #endif