/errtrap_inch {72 mul} bind def /errtrap_scratch 256 string def /errtrap_stringshow {errtrap_scratch cvs show} bind def /errtrap_dshow {dup type dup cvlit userdict exch known {exec} {cvlit show pop} ifelse} bind def /arraytype {([ ) show {errtrap_dshow ( ) show} forall (]) show} def /dicttype {(--dictionary--) show} def /fonttype {(--font--) show} def /gstatetype {(--gstate--) show} def /locktype {(--lock--) show} def /marktype {(--mark--) show} def /filetype {(--filestream--) show} def /nulltype {(--null--) show} def /stringtype {(\() show show (\)) show} def /packedarraytype {(--packedarray--) show} def /savetype {(--savedstate--) show} def /booleantype {errtrap_stringshow} def /integertype {errtrap_stringshow} def /nametype {errtrap_stringshow} def /operatortype {errtrap_stringshow} def /realtype {errtrap_stringshow} def errordict begin /handleerror { showpage % spit out the current page "as is" /Helvetica-Narrow 8 selectfont % easily distinguishable font .5 errtrap_inch 10 errtrap_inch moveto % top left of the page $error {gsave exch errtrap_stringshow (: ) show errtrap_dshow % show each element currentpoint grestore 10 sub % subtract from y coordinate currentpoint pop exch moveto pop} % move to next line down forall showpage} def end