[poppler] Branch 'xpdf303merge' - fofi/FoFiTrueType.cc

Carlos Garcia Campos carlosgc at kemper.freedesktop.org
Thu Sep 1 09:22:40 PDT 2011


 fofi/FoFiTrueType.cc |   29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

New commits:
commit 0fe7cc82e84dc2a3b79248b111656e5e7df9fdc2
Author: Carlos Garcia Campos <carlosgc at gnome.org>
Date:   Thu Sep 1 18:21:33 2011 +0200

    xpdf303: Update cmap, name, post and os2 tables in FoFiTrueType

diff --git a/fofi/FoFiTrueType.cc b/fofi/FoFiTrueType.cc
index 26017d0..f131fac 100644
--- a/fofi/FoFiTrueType.cc
+++ b/fofi/FoFiTrueType.cc
@@ -829,14 +829,17 @@ void FoFiTrueType::convertToType0(char *psName,
 void FoFiTrueType::writeTTF(FoFiOutputFunc outputFunc,
 			    void *outputStream, char *name,
 			    int *codeToGID) {
-  // this substitute cmap table maps char codes 0000-ffff directly to
-  // glyphs 0000-ffff
-  static char cmapTab[36] = {
+  // this substitute cmap table maps char code ffff to glyph 0,
+  // with tables for MacRoman and MS Unicode
+  static char cmapTab[44] = {
     0, 0,			// table version number
-    0, 1,			// number of encoding tables
+    0, 2,			// number of encoding tables
     0, 1,			// platform ID
     0, 0,			// encoding ID
-    0, 0, 0, 12,		// offset of subtable
+    0, 0, 0, 20,		// offset of subtable
+    0, 3,			// platform ID
+    0, 1,			// encoding ID
+    0, 0, 0, 20,		// offset of subtable
     0, 4,			// subtable format
     0, 24,			// subtable length
     0, 0,			// subtable version
@@ -846,9 +849,9 @@ void FoFiTrueType::writeTTF(FoFiOutputFunc outputFunc,
     0, 0,			// 2*segCount - 2*2^floor(log2(segCount))
     (char)0xff, (char)0xff,	// endCount[0]
     0, 0,			// reserved
-    0, 0,			// startCount[0]
-    0, 0,			// idDelta[0]
-    0, 0			// pad to a mulitple of four bytes
+    (char)0xff, (char)0xff,	// startCount[0]
+    0, 1,			// idDelta[0]
+    0, 0			// idRangeOffset[0]
   };
   static char nameTab[8] = {
     0, 0,			// format
@@ -870,8 +873,8 @@ void FoFiTrueType::writeTTF(FoFiOutputFunc outputFunc,
   static char os2Tab[86] = {
     0, 1,			// version
     0, 1,			// xAvgCharWidth
-    0, 0,			// usWeightClass
-    0, 0,			// usWidthClass
+    0x01, (char)0x90,		// usWeightClass
+    0, 5,			// usWidthClass
     0, 0,			// fsType
     0, 0,			// ySubscriptXSize
     0, 0,			// ySubscriptYSize
@@ -897,9 +900,9 @@ void FoFiTrueType::writeTTF(FoFiOutputFunc outputFunc,
     0, 0,			// sTypoAscender
     0, 0,			// sTypoDescender
     0, 0,			// sTypoLineGap
-    0, 0,			// usWinAscent
-    0, 0,			// usWinDescent
-    0, 0, 0, 0,			// ulCodePageRange1
+    0x20, 0x00,			// usWinAscent
+    0x20, 0x00,			// usWinDescent
+    0, 0, 0, 1,			// ulCodePageRange1
     0, 0, 0, 0			// ulCodePageRange2
   };
   GBool missingCmap, missingName, missingPost, missingOS2;


More information about the poppler mailing list