summaryrefslogtreecommitdiff
path: root/dviware/psprint/unix/ps40_header.ps
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/psprint/unix/ps40_header.ps')
-rw-r--r--dviware/psprint/unix/ps40_header.ps67
1 files changed, 67 insertions, 0 deletions
diff --git a/dviware/psprint/unix/ps40_header.ps b/dviware/psprint/unix/ps40_header.ps
new file mode 100644
index 0000000000..524d07137b
--- /dev/null
+++ b/dviware/psprint/unix/ps40_header.ps
@@ -0,0 +1,67 @@
+% For the PrintServer 40 we don't need to produce a banner page.
+% We still redefine the error handler though:
+
+/@errpage 64 dict def
+@errpage begin
+/prnt
+ {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{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{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{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{dup xcheck not{(/)tprint}if cvsprint}readonly def
+/stringtype
+ {dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse
+ }readonly def
+/arraytype
+ {dup rcheck{dup xcheck
+ {({)tprint{typeprint}forall(})tprint}
+ {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse
+ }readonly def
+/packedarraytype
+ {dup rcheck{dup xcheck
+ {({)tprint{typeprint}forall(})tprint}
+ {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse
+ }readonly def
+/courier /Courier findfont 10 scalefont def
+/@oldhandleerror errordict /handleerror get def
+end
+
+errordict /handleerror
+{ systemdict begin $error begin @errpage begin
+ newerror
+ { /newerror false store
+ vmstatus pop pop 0 ne { grestoreall } if
+ initgraphics courier setfont
+ lmargin 792 moveto
+ (POSTSCRIPT ERROR: ) prnt errorname prnt nl
+ (OFFENDING COMMAND: ) prnt /command load prnt nl
+ $error /ostack known
+ { (OPERAND STACK:) prnt nl
+ $error /ostack get aload length {==} repeat
+ } if
+ /#copies 1 store
+ systemdict /showpage get exec
+ /newerror true store
+ /@oldhandleerror load end end end exec }
+ { end end end }
+ ifelse
+} dup 0 systemdict put dup 4 @errpage put bind readonly put