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