% Copyright (C) 2000 Artifex Software, Inc. 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_cidfm.ps 8954 2008-08-08 04:22:38Z ray $
% Redefine CIDFont category with cidfmap .
languagelevel 2 .setlanguagelevel
4 dict begin
/CategoryName /CIDFont def
/MapFileName (cidfmap) def
/IsMyRecord % -> bool
{ % Only for client's needs.
dup type /nametype eq
} bind def
/RecordVirtualMethods 3 dict begin
/MakeInstance % MakeInstance
{ % We know that currentdict is the category.
/Substitute get FindResource % /Name <>
dup length dict copy % /Name <>
1 index ResourceStatus pop exch pop % /Name <> size
} bind def
/GetFilePath % GetFilePath
{ % We know that currentdict is the category.
exch pop
/Substitute get exch ResourceFileName
} bind def
/GetSize % GetSize
{ % We know that currentdict is the category.
/Substitute get ResourceStatus {
exch pop exch pop
} {
/undefinedresource signalerror
} ifelse
} bind def
/GetCSI % GetCSI null
% GetCSI dict
{ % We know that currentdict is the category.
RESMPDEBUG { (cidfm GetCSI beg ) = } if
/Substitute get % /Name
GetCIDSystemInfoFromMap
RESMPDEBUG { (cidfm GetCSI end ) print dup = } if
} bind def
/IsActive % IsActive
{ pop true
} bind def
currentdict end def
/VerifyMap % VerifyMap -
{ % Checks for vicious substitution cycles.
dup length dict copy % <