hrp@BORING.CRAY.COM (Hal Peterson) (10/13/89)
I am using Ghostscript 1.4 on Sun-3/280s and Sun-3/50s under SunOS
3.5 and X11R4alpha, compiled with GCC 1.36, and I've improved the
library handling by modifying the supporting code for "run" to use LIB
as a string to use as a directory name or an array of strings to use
as directory names. It always first checks the current directory.
Strings in LIB must end with the directory delimiter, "/" on UNIX.
Now I can put this line at the beginning of ghost.ps:
/LIB [ (/usr/contrib/lib/ghostscript) (/usr/local/lib/ps) ] def
and (a) I can start Ghostscript without being in the directory with
ghost.ps and (b) whenever I do a "run" it will search my system
PostScript libraries.
LIB existed in 1.4 as distributed, but it was either a string---a
single directory name---or nonexistent; and it had to be in
systemdict.
To use this, replace .findfile in ghost.ps with the following three
functions. I welcome suggestions for improving the style or substance
of this stuff (I don't like the indention, but it's consistent with
the rest of ghost.ps).
/.findafile % helper for .findfile,
% name -> file true OR name false
{{(r) file} stopped
{pop false}
{true}
ifelse} bind def
/.findcfile % helper for .findfile,
% name directory -> file true OR name false
{exch dup 3 1 roll concatstrings .findafile
{exch pop true}
{pop false}
ifelse} bind def
/.findfile % find file for run,
% name -> file true or name false
{.findafile
{true}
{/LIB where
{/LIB get dup type
dup /stringtype eq
{pop .findcfile}
{/arraytype eq
{{{.findcfile {stop} if} forall} stopped}
{pop false}
ifelse}
ifelse}
{false}
ifelse}
ifelse} bind def
--
Hal Peterson Domain: hrp@cray.com
Cray Research Old style: hrp%cray.com@uc.msc.umn.edu
1440 Northland Dr. UUCP: uunet!cray!hrp
Mendota Hts, MN 55120 USA Telephone: +1 612 681 3145