home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 11 / 11.iso / n / n007 / 15.ddi / EHANDLER.PS < prev    next >
Encoding:
Text File  |  1992-02-07  |  3.3 KB  |  2 lines

  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. % RCSID: $Header: ehandler.ps,v 2.1 85/11/24 12:20:03 shore Rel $
  6. % ed for class use, mjf, Mon Nov 24 09:26:51 1986
  7.  
  8. % Change or remove this section to use ehandler.ps on a job-by-job basis.
  9. 0000 % serverloop password
  10. /$brkpage where
  11. {pop pop(Error Handler in place - not loaded again\n)print flush 
  12.  stop}  %aborts to end-of-job.
  13. {dup serverdict begin statusdict begin checkpassword
  14.  {(Error Handler downloaded.\n)print flush exitserver}
  15.  {pop(Bad Password on loading error handler!!!\n)print flush stop}ifelse
  16. }ifelse
  17.  
  18. /$brkpage 64 dict def $brkpage begin
  19. /prnt
  20.  {dup type/stringtype ne{=string cvs}if dup length 6 mul
  21.   /tx exch def/ty 10 def
  22.   currentpoint/toy exch def/tox exch def 1 setgray newpath
  23.   tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto
  24.   closepath fill tox toy moveto 0 setgray show}bind def
  25. /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def
  26. /=={/cp 0 def typeprint nl}def
  27. /typeprint{dup type dup currentdict exch known
  28.   {exec}{unknowntype}ifelse}readonly def
  29. /lmargin 72 def
  30. /rmargin 72 def
  31. /tprint
  32.  {dup length cp add rmargin gt{nl/cp 0 def}if
  33.   dup length cp add/cp exch def prnt}readonly def
  34. /cvsprint{=string cvs tprint( )tprint}readonly def
  35. /unknowntype{exch pop cvlit(??)tprint cvsprint}readonly def
  36. /integertype{cvsprint}readonly def
  37. /realtype{cvsprint}readonly def
  38. /booleantype{cvsprint}readonly def
  39. /operatortype{(//)tprint cvsprint}readonly def
  40. /marktype{pop(-mark- )tprint}readonly def
  41. /dicttype{pop(-dictionary- )tprint}readonly def
  42. /nulltype{pop(-null- )tprint}readonly def
  43. /filetype{pop(-filestream- )tprint}readonly def
  44. /savetype{pop(-savelevel- )tprint}readonly def
  45. /fonttype{pop(-fontid- )tprint}readonly def
  46. /nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def
  47. /stringtype
  48.  {dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse
  49.  }readonly def
  50. /arraytype
  51.  {dup rcheck{dup xcheck
  52.   {({)tprint{typeprint}forall(})tprint}
  53.   {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse
  54.  }readonly def
  55. /packedarraytype
  56.  {dup rcheck{dup xcheck
  57.   {({)tprint{typeprint}forall(})tprint}
  58.   {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}
  59.   ifelse
  60.  }readonly def
  61. /courier/Courier findfont 10 scalefont def
  62. /OLDhandleerror errordict /handleerror get def
  63. end %$brkpage
  64.  
  65.  
  66. errordict
  67. /handleerror
  68.  {systemdict begin $error begin $brkpage begin 
  69.   %Note -- newerror is created in $error by all default error operators.
  70.   newerror
  71.    {/newerror false store 
  72.     $error /errorname get (ioerror) ne $error /command get (exec) ne or
  73.      {    %the above conditional is to prevent spurious error reports caused
  74.     %by a  minor communication bug in the AppleTalk implementation.
  75.       vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont
  76.       lmargin 720 moveto(ERROR: )prnt errorname prnt
  77.       nl(OFFENDING COMMAND: )prnt/command load prnt
  78.       $error/ostack known
  79.         {nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if
  80.       systemdict/showpage get exec
  81.       /newerror true store/OLDhandleerror load end end end exec}
  82.      {end end end} ifelse}
  83.    {end end end}
  84.   ifelse}
  85. dup 0 systemdict put    %bind true systemdict value
  86. dup 4 $brkpage put     %bind true $breakpage value
  87. bind readonly         %lock it up
  88. put            %into errordict
  89. %%EOF
  90.