rsc | 13f7391 | 2004-05-15 23:45:13 +0000 | [diff] [blame] | 1 | %!PS-Adobe |
| 2 | % lib/ehandler.ps -- Downloaded Error Break-page handler |
| 3 | % Copyright (c) 1984, 1985, 1986 Adobe Systems Incorporated. |
| 4 | % All Rights Reserved. |
| 5 | |
| 6 | 0000 % serverloop password |
| 7 | /$brkpage where |
| 8 | {pop pop(Error Handler in place - not loaded again\n)print flush stop} |
| 9 | {dup serverdict begin statusdict begin checkpassword |
| 10 | {(Error Handler downloaded.\n)print flush exitserver} |
| 11 | {pop(Bad Password on loading error handler!!!\n)print flush stop}ifelse |
| 12 | }ifelse |
| 13 | /$brkpage 64 dict def $brkpage begin |
| 14 | /prnt |
| 15 | {dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def |
| 16 | currentpoint/toy exch def/tox exch def 1 setgray newpath |
| 17 | tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto |
| 18 | closepath fill tox toy moveto 0 setgray show}bind def |
| 19 | /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def |
| 20 | /=={/cp 0 def typeprint nl}def |
| 21 | /typeprint{dup type dup currentdict exch known |
| 22 | {exec}{unknowntype}ifelse}readonly def |
| 23 | /lmargin 72 def/rmargin 72 def |
| 24 | /tprint{dup length cp add rmargin gt{nl/cp 0 def}if |
| 25 | dup length cp add/cp exch def prnt}readonly def |
| 26 | /cvsprint{=string cvs tprint( )tprint}readonly def |
| 27 | /unknowntype{exch pop cvlit(??)tprint cvsprint}readonly def |
| 28 | /integertype{cvsprint}readonly def |
| 29 | /realtype{cvsprint}readonly def |
| 30 | /booleantype{cvsprint}readonly def |
| 31 | /operatortype{(//)tprint cvsprint}readonly def |
| 32 | /marktype{pop(-mark- )tprint}readonly def |
| 33 | /dicttype{pop(-dictionary- )tprint}readonly def |
| 34 | /nulltype{pop(-null- )tprint}readonly def |
| 35 | /filetype{pop(-filestream- )tprint}readonly def |
| 36 | /savetype{pop(-savelevel- )tprint}readonly def |
| 37 | /fonttype{pop(-fontid- )tprint}readonly def |
| 38 | /nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def |
| 39 | /stringtype |
| 40 | {dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse |
| 41 | }readonly def |
| 42 | /arraytype |
| 43 | {dup rcheck{dup xcheck |
| 44 | {({)tprint{typeprint}forall(})tprint} |
| 45 | {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse |
| 46 | }readonly def |
| 47 | /packedarraytype |
| 48 | {dup rcheck{dup xcheck |
| 49 | {({)tprint{typeprint}forall(})tprint} |
| 50 | {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse |
| 51 | }readonly def |
| 52 | /courier/Courier findfont 10 scalefont def |
| 53 | /OLDhandleerror errordict /handleerror get def |
| 54 | end %$brkpage |
| 55 | errordict/handleerror |
| 56 | {<< /PageSize [612 792] /ImagingBBox null >> setpagedevice |
| 57 | systemdict begin $error begin $brkpage begin newerror |
| 58 | {/newerror false store |
| 59 | vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont |
| 60 | lmargin 720 moveto(ERROR: )prnt errorname prnt |
| 61 | nl(OFFENDING COMMAND: )prnt/command load prnt |
| 62 | $error/ostack |
| 63 | known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if |
| 64 | systemdict/showpage get exec |
| 65 | /newerror true store/OLDhandleerror load end end end exec}{end end end} |
| 66 | ifelse} |
| 67 | dup 0 systemdict put dup 4 $brkpage put bind readonly put |