camelot-py/camelot/ext/ghostscript/_errors.py

124 lines
3.7 KiB
Python

"""
Definition of Ghostscript error codes
"""
#
# Copyright (C) 2010-2018 by Hartmut Goebel
#
# Based on iapi.h which is
# Copyright (C) 1989, 1995, 1998, 1999 Aladdin Enterprises. All rights reserved.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
__author__ = "Hartmut Goebel <h.goebel@crazy-compilers.com>"
__copyright__ = "Copyright 2010-2018 by Hartmut Goebel <h.goebel@crazy-compilers.com>"
__licence__ = "GNU General Public License version 3 (GPL v3)"
__version__ = "0.6"
LEVEL1_ERROR_NAMES = ["unknownerror", "dictfull", "dictstackoverflow",
"dictstackunderflow", "execstackoverflow",
"interrupt", "invalidaccess", "invalidexit",
"invalidfileaccess", "invalidfont",
"invalidrestore", "ioerror", "limitcheck",
"nocurrentpoint", "rangecheck", "stackoverflow",
"stackunderflow", "syntaxerror", "timeout",
"typecheck", "undefined", "undefinedfilename",
"undefinedresult", "unmatchedmark", "VMerror"]
LEVEL2_ERROR_NAMES = ["configurationerror", "invalidcontext",
"undefinedresource", "unregistered",
"invalidid"]
ERROR_NAMES = LEVEL1_ERROR_NAMES + LEVEL2_ERROR_NAMES
PSEUDO_ERROR_NAMES = ['Fatal', 'Quit', 'InterpreterExit', 'RemapColor',
'ExecStackUnderflow', 'VMreclaim', 'NeedInput',
'NeedStdin', 'NeedStdout', 'NeedStderr', 'Info']
def error2name(ecode):
if ecode <= e_Fatal:
return PSEUDO_ERROR_NAMES[-ecode-100]
else:
return ERROR_NAMES[-ecode-1]
#
# Internal code for a fatal error.
# gs_interpret also returns this for a .quit with a positive exit code.
#
e_Fatal = -100
#
# Internal code for the .quit operator.
# The real quit code is an integer on the operand stack.
# gs_interpret returns this only for a .quit with a zero exit code.
#
e_Quit = -101
#
# Internal code for a normal exit from the interpreter.
# Do not use outside of interp.c.
#
e_InterpreterExit = -102
#
# Internal code that indicates that a procedure has been stored in the
# remap_proc of the graphics state, and should be called before retrying
# the current token. This is used for color remapping involving a call
# back into the interpreter -- inelegant, but effective.
#
e_RemapColor = -103
#
# Internal code to indicate we have underflowed the top block
# of the e-stack.
#
e_ExecStackUnderflow = -104
#
# Internal code for the vmreclaim operator with a positive operand.
# We need to handle this as an error because otherwise the interpreter
# won't reload enough of its state when the operator returns.
#
e_VMreclaim = -105
#
# Internal code for requesting more input from run_string.
#
e_NeedInput = -106
#
# Internal code for stdin callout.
#
e_NeedStdin = -107
#
# Internal code for stdout callout.
#
e_NeedStdout = -108
#
# Internal code for stderr callout.
#
e_NeedStderr = -109
#
# Internal code for a normal exit when usage info is displayed.
# This allows Window versions of Ghostscript to pause until
# the message can be read.
#
e_Info = -110