[comp.sys.mac.misc] Please explain this PostScript problem to me

philip@hubcap.clemson.edu (Philip L Harshman) (07/24/90)

I am trying to force Mac PostScript through a non-apple PostScript interpreter.
Currently, I am having problems with a statement in the LaserPrep file that
looks like this:

/fc{save vmstatus exch sub 50000 lt
{(%%[|0|]%%)=print flush}if pop restore}bdf

From what little I understand of PostScript, this is defining "fc" to be
an alias for the stuff between the outer braces.  However, the
(%%[|0|]%%)=print part is getting triggered repeatedly and causing my
interpreter to choke.  If I take it out, leaving:

/fc{save vmstatus exch sub 50000 lt
{flush}if pop restore}bdf

it works fine, but now I don't know if I'm aiming a gun at my foot for later
things.  Could some give me some idea as to what this is trying to do and
if it's OK to make the change I've made?  Thank you very much for all your
help.
-- 
Philip Harshman                         uucp: ... !gatech!hubcap!philip
Employed by Clemson University         	inet: philip@hubcap.clemson.edu
although they have no idea that       bitnet: philip@clemson
I'm doing this. (So don't tell!)       phone: (803) 656-3697

kevina@apple.com (This space for rent) (07/25/90)

In article <9815@hubcap.clemson.edu> philip@hubcap.clemson.edu (Philip L 
Harshman) writes:
> 
> I am trying to force Mac PostScript through a non-apple PostScript 
interpreter.
> Currently, I am having problems with a statement in the LaserPrep file 
that
> looks like this:
> 
> /fc{save vmstatus exch sub 50000 lt
> {(%%[|0|]%%)=print flush}if pop restore}bdf
> 
> From what little I understand of PostScript, this is defining "fc" to be
> an alias for the stuff between the outer braces.  However, the
> (%%[|0|]%%)=print part is getting triggered repeatedly and causing my
> interpreter to choke.  

As near as I can guess, "fc" stands for "font check" and is called before 
any new PostScript font is defined.  The "%%[|0|]%%" message tells the 
driver that there are less than 50000 bytes of free VM left in the printer 
(the driver probably parses all messages bracketed by "%%[" and "]%%" and 
acts accordingly).

The change you've made won't break anything -- since you're not the LW 
driver, you're not going to do anything differently based on that message 
-- but now I wonder why those print statements "choke" your interpreter?  
Is your "non-Apple" PS interpreter a clone?  If not, why do you have so 
little VM as to repeatedly trigger that message?

Disclaimer:  I'm not an Apple driver spokesman and I don't play one on TV.

--Kevin Andresen [kevina@apple.com]
"No, ma'am, we're musicians."