[gs-cvs] rev 7137 - trunk/gs/lib

ray at ghostscript.com ray at ghostscript.com
Mon Oct 30 13:57:57 PST 2006


Author: ray
Date: 2006-10-30 13:57:56 -0800 (Mon, 30 Oct 2006)
New Revision: 7137

Modified:
   trunk/gs/lib/gs_cmap.ps
Log:
Tolerate some missing keys in a CMap (previously we only allowed for missing
CMapName). Missing /CodeMap and /CIDSystemInfo now tolerated for PS CET 23-25
and others.

DETAILS:

Note a CMap with missing CodeMap can't really be used. It is just accepted
for CPSI compatibility.


Modified: trunk/gs/lib/gs_cmap.ps
===================================================================
--- trunk/gs/lib/gs_cmap.ps	2006-10-30 21:53:44 UTC (rev 7136)
+++ trunk/gs/lib/gs_cmap.ps	2006-10-30 21:57:56 UTC (rev 7137)
@@ -525,9 +525,18 @@
       dup length string copy exch .setglobal exch
     } if dup /CMapName 3 index put
   } if
-  dup /CodeMap get //null eq { .buildcmap } if
+  % Adobe PS CET 23-25 and others define an almost empty CMap. Tolerate this.
+  % With the above, we can actually tolerate: /name << >> defineresource
+  dup /CIDSystemInfo known not {
+    dup wcheck not {
+      .currentglobal exch dup wcheck .setglobal
+      dup length dict .copydict exch .setglobal
+    } if
+    dup /CIDSystemInfo [ //null ] put
+  } if
+  dup /CodeMap .knownget { //null eq { .buildcmap } if } if
   /Generic /Category findresource /DefineResource get exec
-} put
+} bind put
 /Category defineresource pop
 	% We might have loaded CID font support already.
 /CIDInit /ProcSet 2 copy { findresource } .internalstopped



More information about the gs-cvs mailing list