home *** CD-ROM | disk | FTP | other *** search
- %!PS-Adobe-2.0
- % ehandler.ps -- Downloaded Error Break-page handler
- % Copyright (c) 1984, 1985, 1986 Adobe Systems Incorporated.
- % All Rights Reserved.
-
- 0000 % exitserver password
- /$brkpage where { %ifelse
- pop pop
- (Error Handler in place - not loaded again\n)
- print flush stop
- }{ %else
- dup serverdict begin
- statusdict begin checkpassword { %ifelse
- (Error Handler downloaded.\n)print flush
- exitserver
- }{ %else
- pop
- (Bad Password on loading error handler!!!\n)
- print flush stop
- } ifelse
- } ifelse
- /$brkpage 64 dict def $brkpage begin
- /prnt { %def
- dup type /stringtype ne { =string cvs } if
- dup length 6 mul
- /tx exch def /ty 10 def
- currentpoint /toy exch def /tox exch def
- 1 setgray newpath
- tox toy 2 sub moveto
- 0 ty rlineto tx 0 rlineto
- 0 ty neg rlineto
- closepath fill
- tox toy moveto 0 setgray show
- } bind def
- /nl { %def
- currentpoint exch pop lmargin exch moveto
- 0 -10 rmoveto
- } def
- /== { /cp 0 def typeprint nl } def
- /typeprint {
- dup type dup currentdict exch known {exec}{
- unknowntype
- } ifelse
- } readonly def
- /lmargin 72 def /rmargin 72 def
- /tprint { %def
- dup length cp add rmargin gt { nl /cp 0 def } if
- dup length cp add /cp exch def
- prnt
- } readonly def
- /cvsprint { =string cvs tprint ( ) tprint } readonly def
- /unknowntype { %def
- exch pop cvlit (??) tprint cvsprint
- } readonly def
- /integertype { cvsprint } readonly def
- /realtype { cvsprint } readonly def
- /booleantype { cvsprint } readonly def
- /operatortype { (//) tprint cvsprint } readonly def
- /marktype { pop (-mark- ) tprint } readonly def
- /dicttype { pop (-dictionary- ) tprint } readonly def
- /nulltype { pop (-null- ) tprint } readonly def
- /filetype { pop (-filestream- ) tprint } readonly def
- /savetype { pop (-savelevel- ) tprint } readonly def
- /fonttype { pop (-fontid- ) tprint } readonly def
- /nametype { %def
- dup xcheck not { (/) tprint } if cvsprint
- } readonly def
- /stringtype { %def
- dup rcheck { %ifelse
- (\() tprint tprint (\)) tprint
- }{ %else
- pop (-string- ) tprint
- } ifelse
- }readonly def
- /arraytype { %def
- dup rcheck { %ifelse
- dup xcheck { %ifelse
- ({) tprint { typeprint } forall (}) tprint
- }{ %else
- ([) tprint { typeprint } forall (]) tprint
- } ifelse
- }{ %else
- pop (-array- ) tprint
- } ifelse
- } readonly def
- /packedarraytype { %def
- dup rcheck { %ifelse
- dup xcheck { %ifelse
- ({) tprint { typeprint } forall (}) tprint
- }{ %else
- ([) tprint { typeprint } forall (]) tprint
- } ifelse
- }{ %else
- pop (-packedarray- ) tprint
- } ifelse
- } readonly def
- /courier /Courier findfont 10 scalefont def
- /OLDhandleerror errordict /handleerror get def
- end %$brkpage
-
- /handleerror { %put
- systemdict begin $error begin $brkpage begin
- newerror { %ifelse
- /newerror false store
- vmstatus pop pop 0 ne { grestoreall } if
- initgraphics courier setfont
- lmargin 720 moveto (ERROR: ) prnt
- errorname prnt
- nl (OFFENDING COMMAND: ) prnt
- /command load prnt
- $error /ostack known { %if
- nl nl (STACK:) prnt nl nl
- $error /ostack get aload length { == } repeat
- } if
- systemdict /showpage get exec
- /newerror true store
- /OLDhandleerror load end end end exec
- }{ %else
- end end end
- } ifelse
- }
- dup 0 systemdict put % replace name by actual dict object
- dup 4 $brkpage put % replace name by dict object
- bind readonly
-
- errordict 3 1 roll put % put proc in errordict as /handleerror
-