1%!ps 2% lib/ehandler.ps -- Downloaded Error Break-page handler 3% GOVERNMENT END USERS: See Notice file in TranScript library directory 4% -- probably /usr/lib/ps/Notice 5% RCSID: $Header: /inf/soft/infthes/demaille/CVSROOT/a2ps/ps/ehandler.ps,v 1.1 1997/08/15 14:23:11 demaille Exp $ 6% -- code follows this line -- 7% assumes serverloop password is the default one 8/$brkpage where 9{pop(Error Handler in place - not loaded again\n)print flush stop} 10{serverdict begin statusdict begin 0000 checkpassword 11 {(Error Handler downloaded.\n)print flush 0000 exitserver} 12 {(Bad Password on loading error handler!!!\n)print flush stop}ifelse 13}ifelse 14/$brkpage 64 dict def $brkpage begin 15/prnt 16 {dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def 17 currentpoint/toy exch def/tox exch def 1 setgray newpath 18 tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto 19 closepath fill tox toy moveto 0 setgray show}bind def 20/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def 21/=={/cp 0 def typeprint nl}def 22/typeprint{dup type exec}readonly def 23/lmargin 72 def 24/rmargin 72 def 25/tprint 26 {dup length cp add rmargin gt{nl/cp 0 def}if 27 dup length cp add/cp exch def prnt}readonly def 28/cvsprint{=string cvs tprint( )tprint}readonly def 29/integertype{cvsprint}readonly def 30/realtype{cvsprint}readonly def 31/booleantype{cvsprint}readonly def 32/operatortype{(--)tprint =string cvs tprint(-- )tprint}readonly def 33/marktype{pop(-mark- )tprint}readonly def 34/dicttype{pop(-dictionary- )tprint}readonly def 35/nulltype{pop(-null- )tprint}readonly def 36/filetype{pop(-filestream- )tprint}readonly def 37/savetype{pop(-savelevel- )tprint}readonly def 38/fonttype{pop(-fontid- )tprint}readonly def 39/nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def 40/stringtype 41 {dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse 42 }readonly def 43/arraytype 44 {dup rcheck{dup xcheck 45 {({)tprint{typeprint}forall(})tprint} 46 {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse 47 }readonly def 48/packedarraytype 49 {dup rcheck{dup xcheck 50 {({)tprint{typeprint}forall(})tprint} 51 {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse 52 }readonly def 53/courier/Courier findfont 10 scalefont def 54end %$brkpage 55errordict/handleerror 56 {systemdict begin $error begin $brkpage begin newerror 57 {/newerror false store 58 vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont 59 lmargin 720 moveto(ERROR: )prnt errorname prnt 60 nl(OFFENDING COMMAND: )prnt/command load prnt 61 $error/ostack 62 known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if 63 systemdict/showpage get exec(%%[ Error: )print 64 errorname =print(; OffendingCommand: )print/command 65 load =print( ]%%)= flush}if end end end} 66dup 0 systemdict put dup 4 $brkpage put bind readonly put 67