summaryrefslogtreecommitdiff
path: root/Master/xemtex/gslib/errpage.ps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/xemtex/gslib/errpage.ps')
-rw-r--r--Master/xemtex/gslib/errpage.ps363
1 files changed, 0 insertions, 363 deletions
diff --git a/Master/xemtex/gslib/errpage.ps b/Master/xemtex/gslib/errpage.ps
deleted file mode 100644
index 7619205168c..00000000000
--- a/Master/xemtex/gslib/errpage.ps
+++ /dev/null
@@ -1,363 +0,0 @@
-%!
-% Copyright (C) 1992, 1996, 1998 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 2 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, write to the Free Software Foundation, Inc.,
-% 59 Temple Place, Suite 330, Boston, MA, 02111-1307.
-
-% $Id: errpage.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $
-% Print an informative error page if an error occurs.
-% Inspired by Adobe's `ehandler.ps' and David Holzgang's PinPoint.
-
-/EPdict 80 dict def
-EPdict begin
-
-/escale 12 def
-/efont /Helvetica findfont escale scalefont def
-/eheight escale 1.2 mul def
-
-% Miscellaneous utilities
-/xdef
- { exch def
- } bind def
-
-% Define `show' equivalents of = and ==
-
-/show=
- { =string { cvs } stopped { pop pop (==unprintable==) } if show
- } bind def
-
-/.dict 18 dict def
-.dict begin
- /.buf =string def
- /.cvp {.buf cvs show} bind def
- /.nop {(-) .p type .cvp (-) .p} bind def
- /.p {show} bind def
- /.p1 {( ) dup 0 4 -1 roll put show} bind def
- /.print
- {dup type .dict exch known
- {dup type exec} {.nop} ifelse
- } bind def
- /integertype /.cvp load def
- /nulltype { pop (null) .p } bind def
- /realtype /.cvp load def
- /booleantype /.cvp load def
- /nametype
- {dup xcheck not {(/) .p} if
- dup length .buf length gt
- {dup length string}
- {.buf}
- ifelse cvs .p} bind def
- /arraytype
- {dup rcheck
- {dup xcheck {(})({)} {(])([)} ifelse .p
- exch () exch
- {exch .p .print ( )} forall pop .p}
- {.nop}
- ifelse} bind def
- /operatortype
- {(--) .p .cvp (--) .p} bind def
- /packedarraytype /arraytype load def
- /stringtype
- {dup rcheck
- {(\() .p
- {/.ch exch def
- .ch 32 lt .ch 127 ge or
- {(\\) .p .ch 8#1000 add 8 .buf cvrs 1 3 getinterval .p}
- {.ch 40 eq .ch 41 eq or .ch 92 eq or
- {(\\) .p} if
- .ch .p1}
- ifelse}
- forall (\)) .p}
- {.nop}
- ifelse} bind def
-end
-/show==
- { .dict begin .print end
- } bind def
-
-% Printing utilities
-
-/eol
- { /ey ey eheight sub def
- ex ey moveto
- } bind def
-/setx
- { /ex xdef ex ey moveto
- } bind def
-/setxy
- { /ey xdef /ex xdef
- ex ey moveto
- } bind def
-/indent
- { /lx ex def
- ( ) show currentpoint setxy
- } bind def
-/unindent
- { lx setx
- } bind def
-
-% Get the name of the n'th dictionary on the (saved) dictionary stack.
-/nthdictname % n -> name true | false
- { dup dstack exch get
- exch -1 0
- { dstack exch get
- { 2 index eq { exch pop exit } { pop } ifelse
- }
- forall
- dup type /nametype eq { exit } if
- }
- for
- dup type /nametype eq { true } { pop false } ifelse
- } bind def
-
-% Find the name of a currently executing procedure.
-/findprocname % <proctail> findprocname <dstackindex> <procname> true
- % <proctail> findprocname false
- { dup length /proclength xdef
- dup type cvlit /proctype xdef
- dstack length 1 sub -1 0
- { dup dstack exch get
- { dup type proctype eq
- { dup rcheck { dup length } { -1 } ifelse proclength gt
- { dup length proclength sub proclength getinterval 3 index eq
- { 3 -1 roll pop exit }
- { pop }
- ifelse
- }
- { pop pop
- }
- ifelse
- }
- { pop pop
- }
- ifelse
- }
- forall
- dup type /nametype eq { exit } if
- pop
- }
- for
- dup type /nametype eq { true } { pop false } ifelse
- } bind def
-
-% Error printing routine.
-% The top 2 elements of the o-stack are systemdict and EPdict.
-% For the moment, we ignore the possibility of stack overflow or VMerror.
-/showerror % <command> <countexecstack> <errorname> showerror -
- {
- % Restore the error handlers.
-
- saveerrordict { errordict 3 1 roll put } forall
- $error /recordstacks false put
-
- % Save information from the stacks.
-
- /saveerror xdef
- countexecstack array execstack
- 0 3 -1 roll 1 sub getinterval
- /estack xdef
- /savecommand xdef
-
- countdictstack array dictstack
- dup length 2 sub 0 exch getinterval
- /dstack xdef
-
- % Save state variables that will be reset.
- % (We could save and print a lot more of the graphics state.)
-
- /savefont currentfont def
- mark { savefont /FontName get =string cvs cvn } stopped
- { cleartomark null }
- { exch pop dup length 0 eq { pop null } if }
- ifelse /savefontname xdef
- efont setfont
-
- { currentpoint } stopped { null null } if
- /savey xdef /savex xdef
- 0 0
- { pop pop }
- { pop pop 1 add }
- { pop pop pop pop pop pop exch 1 add exch }
- { }
- pathforall
- /savelines xdef /savecurves xdef
- /savepathbbox { [ pathbbox ] } stopped { pop null } if def
-
- initmatrix
-
- clippath pathbbox
- /savecliptop xdef /saveclipright xdef
- /saveclipbottom xdef /saveclipleft xdef
- initclip
-
- initgraphics
-
- % Eject the current page.
-
- showpage
-
- % Print the page heading.
-
- 18 clippath pathbbox newpath
- 4 1 roll pop pop pop eheight sub 12 sub setxy
- product (Product: )
- statusdict /printername known
- { 100 string statusdict begin printername end
- dup length 0 gt
- { exch pop exch pop (Printer name: ) }
- { pop }
- ifelse
- }
- if show show eol
- (Interpreter version ) show version show eol
- (Error: ) show saveerror show= eol
- (Command being executed: ) show /savecommand load show= eol
- currentfile { fileposition } stopped
- { pop }
- { (Position in input file: ) show show= eol }
- ifelse eol
-
- % Print the current graphics state.
-
- (Page parameters:) show eol indent
- (page size: ) show
- gsave clippath pathbbox grestore
- exch 3 index sub show= (pt x ) show
- exch sub show= (pt) show pop eol
- (current position: ) show
- savex null eq
- { (none) show }
- { (x = ) show savex show= (, y = ) show savey show= }
- ifelse eol
- savelines savecurves add 0 eq
- { (current path is empty) show
- }
- { (current path: ) show savelines show= ( line(s), ) show
- savecurves show= ( curve(s)) show eol
- (path bounding box: ) show savepathbbox show==
- }
- ifelse eol
- (current font: ) show
- savefontname dup null eq
- { pop (--no name--) show }
- { show= ( ) show
- gsave
- savefontname findfont /FontMatrix get matrix invertmatrix
- grestore
- savefont /FontMatrix get matrix concatmatrix
- dup 1 get 0 eq 1 index 2 get 0 eq and
- 1 index 4 get 0 eq and 1 index 5 get 0 eq and
- 1 index 0 get 2 index 3 get eq and
- { 0 get show= (pt) show }
- { (scaled by ) show show= }
- ifelse
- }
- ifelse eol
- eol unindent
-
- % Print the operand stack.
-
- /stky ey def
- (Operand stack:) show eol indent
- count { show== eol } repeat
- eol unindent
-
- % Print the dictionary stack.
-
- (Dictionary stack:) show eol indent
- dstack length 1 sub -1 0
- { nthdictname { show= } { (<unknown>) show } ifelse eol
- } for
- eol unindent
-
- % Print the execution stack.
-
- 280 stky setxy
- (Execution stack:) show eol indent
- estack length 1 sub -1 1
- { estack exch get
- dup type /operatortype eq
- { show= eol
- }
- { dup type dup /arraytype eq exch /packedarraytype eq or
- { dup xcheck
- { dup rcheck
- { findprocname
- { show= nthdictname { ( in ) show show= } if eol
- }
- if
- }
- { pop
- }
- ifelse
- }
- { pop
- }
- ifelse
- }
- { pop
- }
- ifelse
- }
- ifelse
- } for eol unindent
-
- % Print the next few lines of input.
- % Unfortunately, this crashes on an Adobe printer.
-
-(
- (Next few lines of input:) show eol indent
- /input currentfile def
- mark { 4
- { input ( ) readstring not { pop exit } if
- dup 0 get dup 10 eq
- { pop pop eol 1 sub dup 0 eq { pop exit } if }
- { dup 13 eq { pop pop } { pop show } ifelse }
- ifelse
- }
- loop } stopped cleartomark eol unindent
-) pop
-
- % Wrap up.
-
- showpage
- quit
-
- } def
-
-% Define the common procedure for handling errors.
-/doerror
- { systemdict begin EPdict begin showerror
- } bind def
-
-end
-
-% Install our own error handlers.
-
-/EPinstall
- { EPdict begin
- /saveerrordict errordict length dict def
- errordict saveerrordict copy pop
- errordict
- { pop [ /countexecstack load 2 index cvlit /doerror load /exec load ] cvx
- errordict 3 1 roll put
- } forall
- errordict /handleerror
- [ /countexecstack load /handleerror /doerror load /exec load
- ] cvx
- put
- end
- } bind def
-
-EPinstall