3 * (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
5 * This product is part of the Amsterdam Compiler Kit.
7 * Permission to use, sell, duplicate or disclose this software must be
8 * obtained in writing. Requests for such permissions may be sent to
10 * Dr. Andrew S. Tanenbaum
11 * Wiskundig Seminarium
23 /* to make it easier to patch ... */
24 extern struct file
*_curfil
;
30 { EARRAY
, "array bound error"},
31 { ERANGE
, "range bound error"},
32 { ESET
, "set bound error"},
33 { EIOVFL
, "integer overflow"},
34 { EFOVFL
, "real overflow"},
35 { EFUNFL
, "real underflow"},
36 { EIDIVZ
, "divide by 0"},
37 { EFDIVZ
, "divide by 0.0"},
38 { EIUND
, "undefined integer"},
39 { EFUND
, "undefined real"},
40 { ECONV
, "conversion error"},
42 { ESTACK
, "stack overflow"},
43 { EHEAP
, "heap overflow"},
44 { EILLINS
, "illegal instruction"},
45 { EODDZ
, "illegal size argument"},
46 { ECASE
, "case error"},
47 { EMEMFLT
, "addressing non existent memory"},
48 { EBADPTR
, "bad pointer used"},
49 { EBADPC
, "program counter out of range"},
50 { EBADLAE
, "bad argument of lae"},
51 { EBADMON
, "bad monitor call"},
52 { EBADLIN
, "argument if LIN too high"},
53 { EBADGTO
, "GTO descriptor error"},
55 { EARGC
, "more args expected" },
56 { EEXP
, "error in exp" },
57 { ELOG
, "error in ln" },
58 { ESQT
, "error in sqrt" },
59 { EASS
, "assertion failed" },
60 { EPACK
, "array bound error in pack" },
61 { EUNPACK
, "array bound error in unpack" },
62 { EMOD
, "only positive j in 'i mod j'" },
63 { EBADF
, "file not yet open" },
64 { EFREE
, "dispose error" },
65 { EFUNASS
, "function not assigned" },
66 { EWIDTH
, "illegal field width" },
68 { EWRITEF
, "not writable" },
69 { EREADF
, "not readable" },
70 { EEOF
, "end of file" },
71 { EFTRUNC
, "truncated" },
72 { ERESET
, "reset error" },
73 { EREWR
, "rewrite error" },
74 { ECLOSE
, "close error" },
75 { EREAD
, "read error" },
76 { EWRITE
, "write error" },
77 { EDIGIT
, "digit expected" },
78 { EASCII
, "non-ASCII char read" },
84 extern char ***_penviron
;
91 _catch(erno
) unsigned erno
; {
92 register struct errm
*ep
= &errors
[0];
106 while (ep
->errno
!= erno
&& ep
->errmes
!= 0) ep
++;
114 while (p
> buf
) *s
++ = *--p
;
120 if ((erno
& ~037) == 0140 && (_curfil
->flags
&0377)==MAGIC
) {
123 *qq
++ = _curfil
->fname
;
126 if (ep
->errmes
) *qq
++ = ep
->errmes
;
128 *qq
++ = "error number ";
138 while (p
> buf
) *s
++ = *--p
;
148 if (_write(2,q
,(int)(p
-q
)) < 0)