xref: /plan9/sys/src/cmd/gs/src/ierrors.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 1989, 1995, 1998, 1999 Aladdin Enterprises.  All rights reserved.
2 
3   This software is provided AS-IS with no warranty, either express or
4   implied.
5 
6   This software is distributed under license and may not be copied,
7   modified or distributed except as expressly authorized under the terms
8   of the license contained in the file LICENSE in this distribution.
9 
10   For more information about licensing, please refer to
11   http://www.ghostscript.com/licensing/. For information on
12   commercial licensing, go to http://www.artifex.com/licensing/ or
13   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15 */
16 
17 /* $Id: ierrors.h,v 1.2 2003/12/03 22:31:26 alexcher Exp $ */
18 /* Definition of error codes */
19 
20 #ifndef ierrors_INCLUDED
21 #  define ierrors_INCLUDED
22 
23 /*
24  * DO NOT USE THIS FILE IN THE GRAPHICS LIBRARY.
25  * THIS FILE IS PART OF THE POSTSCRIPT INTERPRETER.
26  * USE gserrors.h IN THE LIBRARY.
27  */
28 
29 /*
30  * A procedure that may return an error always returns
31  * a non-negative value (zero, unless otherwise noted) for success,
32  * or negative for failure.
33  * We use ints rather than an enum to avoid a lot of casting.
34  */
35 
36 /* Define the error name table */
37 extern const char *const gs_error_names[];
38 
39 		/* ------ PostScript Level 1 errors ------ */
40 
41 #define e_unknownerror (-1)	/* unknown error */
42 #define e_dictfull (-2)
43 #define e_dictstackoverflow (-3)
44 #define e_dictstackunderflow (-4)
45 #define e_execstackoverflow (-5)
46 #define e_interrupt (-6)
47 /* We also need to define gs_error_interrupt, for gpcheck.h. */
48 #undef gs_error_interrupt
49 #define gs_error_interrupt e_interrupt
50 #define e_invalidaccess (-7)
51 #define e_invalidexit (-8)
52 #define e_invalidfileaccess (-9)
53 #define e_invalidfont (-10)
54 #define e_invalidrestore (-11)
55 #define e_ioerror (-12)
56 #define e_limitcheck (-13)
57 #define e_nocurrentpoint (-14)
58 #define e_rangecheck (-15)
59 #define e_stackoverflow (-16)
60 #define e_stackunderflow (-17)
61 #define e_syntaxerror (-18)
62 #define e_timeout (-19)
63 #define e_typecheck (-20)
64 #define e_undefined (-21)
65 #define e_undefinedfilename (-22)
66 #define e_undefinedresult (-23)
67 #define e_unmatchedmark (-24)
68 #define e_VMerror (-25)
69 
70 #define LEVEL1_ERROR_NAMES\
71  "unknownerror", "dictfull", "dictstackoverflow", "dictstackunderflow",\
72  "execstackoverflow", "interrupt", "invalidaccess", "invalidexit",\
73  "invalidfileaccess", "invalidfont", "invalidrestore", "ioerror",\
74  "limitcheck", "nocurrentpoint", "rangecheck", "stackoverflow",\
75  "stackunderflow", "syntaxerror", "timeout", "typecheck", "undefined",\
76  "undefinedfilename", "undefinedresult", "unmatchedmark", "VMerror"
77 
78 		/* ------ Additional Level 2 and DPS errors ------ */
79 
80 #define e_configurationerror (-26)
81 #define e_invalidcontext (-27)
82 #define e_undefinedresource (-28)
83 #define e_unregistered (-29)
84 /* invalidid is for the NeXT DPS extension. */
85 #define e_invalidid (-30)
86 
87 #define LEVEL2_ERROR_NAMES\
88  "configurationerror", "invalidcontext", "undefinedresource",\
89  "unregistered", "invalidid"
90 
91 #define ERROR_NAMES   LEVEL1_ERROR_NAMES, LEVEL2_ERROR_NAMES
92 
93 		/* ------ Pseudo-errors used internally ------ */
94 
95 /*
96  * Internal code for a fatal error.
97  * gs_interpret also returns this for a .quit with a positive exit code.
98  */
99 #define e_Fatal (-100)
100 
101 /*
102  * Internal code for the .quit operator.
103  * The real quit code is an integer on the operand stack.
104  * gs_interpret returns this only for a .quit with a zero exit code.
105  */
106 #define e_Quit (-101)
107 
108 /*
109  * Internal code for a normal exit from the interpreter.
110  * Do not use outside of interp.c.
111  */
112 #define e_InterpreterExit (-102)
113 
114 /*
115  * Internal code that indicates that a procedure has been stored in the
116  * remap_proc of the graphics state, and should be called before retrying
117  * the current token.  This is used for color remapping involving a call
118  * back into the interpreter -- inelegant, but effective.
119  */
120 #define e_RemapColor (-103)
121 
122 /*
123  * Internal code to indicate we have underflowed the top block
124  * of the e-stack.
125  */
126 #define e_ExecStackUnderflow (-104)
127 
128 /*
129  * Internal code for the vmreclaim operator with a positive operand.
130  * We need to handle this as an error because otherwise the interpreter
131  * won't reload enough of its state when the operator returns.
132  */
133 #define e_VMreclaim (-105)
134 
135 /*
136  * Internal code for requesting more input from run_string.
137  */
138 #define e_NeedInput (-106)
139 
140 /*
141  * Internal code for stdin callout.
142  */
143 #define e_NeedStdin (-107)
144 
145 /*
146  * Internal code for stdout callout.
147  */
148 #define e_NeedStdout (-108)
149 
150 /*
151  * Internal code for stderr callout.
152  */
153 #define e_NeedStderr (-109)
154 
155 /*
156  * Internal code for a normal exit when usage info is displayed.
157  * This allows Window versions of Ghostscript to pause until
158  * the message can be read.
159  */
160 #define e_Info (-110)
161 
162 /*
163  * Define which error codes require re-executing the current object.
164  */
165 #define ERROR_IS_INTERRUPT(ecode)\
166   ((ecode) == e_interrupt || (ecode) == e_timeout)
167 
168 #endif /* ierrors_INCLUDED */
169