Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!gem.mps.ohio-state.edu!apple!bloom-beacon!eru!luth!sunic!mcsun!hp4nl!phigate!prle!prles2!prles3a!debruyne From: debruyne@prles3a.prl.philips.nl (Jos de Bruijne) Newsgroups: comp.lang.postscript Subject: Re: Exploring PostScript's dictionaries Message-ID: <731@prles2.UUCP> Date: 9 Oct 89 14:36:59 GMT References: <723@prles2.UUCP> Sender: nobody@prles2.UUCP Reply-To: debruyne@prles3a.UUCP (Jos de Bruijne) Organization: Philips Research Laboratories, Eindhoven the Netherlands Lines: 74 Last Thursday, when I switched form an Apple Laserwriter to an Agfa P3400PS Laserprinter I encountered some problems with my program "systemdict.ps" that I posted a few days ago. 1. The statusdict-integer waittimeout was too small (30): The printer ended with an error-message "timeout". To solve this problem I added some lines to my program that increase this timeout during the job to 120. 2. When the program encountered a "no access" string, i.e.: FontDirectory (dict,r--) . Courier (dict,r--) . . CharData (string,---) the printerjob ended with: %%[ Error: invalidaccess; OffendingCommand: length ]%% The printer was right about that (isn't he always?): it is illegal to read a string that has *no* access at all ! This problem was solved by adding a few lines that first check the keyword to see if it has read-access. The end of this file is the diff(1) output of the changes I made to systemdict.ps . One other problem ----------------- There is one known problem that I wasn't able to solve right now: The printer might stop the job with an error that looks something like: %%[ Fatal system error.... ]%% I think that is because the printer's memory is full. This might be so for instance when you use permanently downloaded fonts from TeX (or LaTeX). Switching the printer off and on again might solve this problem, BUT then all of your donwloaded stuff is also gone ! If you still find any bugs after you have updated systemdict.ps please let me know. Jos. ***** the rest of the file is diff(1) output for the systemdict.ps update. ***** 77c77 < /LocalDict 27 dict def --- > /LocalDict 28 dict def 105a106 > /wto 27 def 186,188c187,191 < { DictName cvx exec Keyword get } stopped < { ( = \(\?\)) show } < { ( = ) show shw } ifelse --- > OperandType (stringtype) eq { > DictName cvx exec Keyword get rcheck > { ( = ) show DictName cvx exec Keyword get shw } if > } > { ( = ) show DictName cvx exec Keyword get shw } ifelse 260a264,268 > statusdict begin > defaulttimeouts /wto exch def pop pop > /waittimeout 120 def > end > 276a285,287 > statusdict begin > /waittimeout wto def > end 279a291,292 > >