plan9fox/sys/lib/ghostscript/gs_ccfnt.ps
2011-03-30 19:35:09 +03:00

76 lines
2.1 KiB
PostScript

% Copyright (C) 1994, 2000 Aladdin Enterprises. All rights reserved.
%
% This software is provided AS-IS with no warranty, either express or
% implied.
%
% This software is distributed under license and may not be copied,
% modified or distributed except as expressly authorized under the terms
% of the license contained in the file LICENSE in this distribution.
%
% For more information about licensing, please refer to
% http://www.ghostscript.com/licensing/. For information on
% commercial licensing, go to http://www.artifex.com/licensing/ or
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
% $Id: gs_ccfnt.ps,v 1.8 2003/04/12 18:08:18 ray Exp $
% Find and register all the precompiled font operators in systemdict.
/registerfont % <fontname> <fontdict> registerfont <font>
{ CCFONTDEBUG { (Registering ) print 1 index = } if
dup begin
Encoding type /nametype eq
{ Encoding .findencoding /Encoding exch def
}
if
dup /PrefEnc known
{ PrefEnc type /nametype eq
{ PrefEnc .findencoding /PrefEnc exch def
}
if
}
if
dup /FDepVector known
{ /FDepVector [ FDepVector
{ .FontDirectory 1 index .knownget
{ exch pop }
{ ccfonts 1 index .knownget
{ registerfont
}
{ Fontmap 1 index known
{ findfont }
{ pop NullFont }
ifelse
}
ifelse
}
ifelse
}
forall ] readonly def
}
if
end
% Use the value of definefont appropriate at run-time, not bind-time
/definefont load exec
} bind odef
% Bind recursive call (bind descends into oparrays: feature!)
/registerfont dup load bind def
/.loadinitialfonts {
//.loadinitialfonts exec
NOCCFONTS not {
/ccfonts mark
0 1 null .getccfont 1 sub { .getccfont dup /FontName get exch } for
.dicttomark def
% Make sure these fonts are registered as "resources".
currentfile {
pop ccfonts {
.FontDirectory 2 index known { pop pop } { registerfont pop } ifelse
} forall
} .execasresource
currentdict /ccfonts .undef
} if
} bind def
currentdict /registerfont .undef