s/OpenTypeFont/OpenTypeFontFace/g
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 28 Dec 2006 00:58:32 +0000 (19:58 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 28 Dec 2006 00:58:32 +0000 (19:58 -0500)
src/harfbuzz-ng.cc

index 56415f7..ac94578 100644 (file)
@@ -207,7 +207,7 @@ struct Fixed_Version : Fixed {
  * Organization of an OpenType Font
  */
 
-struct OpenTypeFontFile;
+struct OpenTypeFontFaceFile;
 struct OffsetTable;
 struct TTCHeader;
 
@@ -230,14 +230,14 @@ typedef struct OffsetTable {
   USHORT       entrySelector;  /* Log2(maximum power of 2 <= numTables). */
   USHORT       rangeShift;     /* NumTables x 16-searchRange. */
   TableDirectory tableDir[];   /* TableDirectory entries. numTables items */
-} OpenTypeFont;
+} OpenTypeFontFace;
 
 /*
  * TrueType Collections
  */
 
 struct TTCHeader {
-  /* OpenTypeFonts, in no particular order */
+  /* OpenTypeFontFaces, in no particular order */
   DEFINE_OFFSET_ARRAY_TYPE (OffsetTable, offsetTable, numFonts);
 
   Tag  ttcTag;         /* TrueType Collection ID string: 'ttcf' */
@@ -253,8 +253,8 @@ struct TTCHeader {
  * OpenType Font File
  */
 
-struct OpenTypeFontFile {
-  DEFINE_NON_INSTANTIABLE(OpenTypeFontFile);
+struct OpenTypeFontFaceFile {
+  DEFINE_NON_INSTANTIABLE(OpenTypeFontFaceFile);
   static const hb_tag_t TrueTypeTag    = HB_TAG ( 0 , 1 , 0 , 0 );
   static const hb_tag_t CFFTag         = HB_TAG ('O','T','T','O');
   static const hb_tag_t TTCTag         = HB_TAG ('t','t','c','f');
@@ -262,11 +262,11 @@ struct OpenTypeFontFile {
   /* Factory: ::get(font_data)
    * This is how you get a handle to one of these
    */
-  static inline const OpenTypeFontFile& get (const char *font_data) {
-    return (const OpenTypeFontFile&)*font_data;
+  static inline const OpenTypeFontFaceFile& get (const char *font_data) {
+    return (const OpenTypeFontFaceFile&)*font_data;
   }
-  static inline OpenTypeFontFile& get (char *font_data) {
-    return (OpenTypeFontFile&)*font_data;
+  static inline OpenTypeFontFaceFile& get (char *font_data) {
+    return (OpenTypeFontFaceFile&)*font_data;
   }
 
   /* This is how you get a table */
@@ -291,14 +291,14 @@ struct OpenTypeFontFile {
     case TTCTag: return ((const TTCHeader&)*this).get_len();
     }
   }
-  inline const OpenTypeFont& operator[] (unsigned int i) const {
+  inline const OpenTypeFontFace& operator[] (unsigned int i) const {
     assert (i < get_len ());
     switch (tag) {
     default: case TrueTypeTag: case CFFTag: return (const OffsetTable&)*this;
     case TTCTag: return ((const TTCHeader&)*this)[i];
     }
   }
-  inline OpenTypeFont& operator[] (unsigned int i) {
+  inline OpenTypeFontFace& operator[] (unsigned int i) {
     assert (i < get_len ());
     switch (tag) {
     default: case TrueTypeTag: case CFFTag: return (OffsetTable&)*this;
@@ -318,7 +318,7 @@ struct OpenTypeFontFile {
  */
 
 /*
- * Script, ScriptList, LangSys, Feature, FeatureList, Lookup, LookupList, SubTable
+ * Script, ScriptList, LangSys, Feature, FeatureList, Lookup, LookupList
  */
 
 struct Script;
@@ -328,7 +328,6 @@ struct Feature;
 struct FeatureList;
 struct Lookup;
 struct LookupList;
-struct SubTable;
 
 typedef struct Record {
   Tag          tag;            /* 4-byte Tag identifier */
@@ -440,7 +439,7 @@ struct LookupFlag : USHORT {
 
 struct Lookup {
   /* SubTables, in the desired order */
-  DEFINE_OFFSET_ARRAY_TYPE (SubTable, subTableOffset, subTableCount);
+  DEFINE_OFFSET_ARRAY_TYPE (char*, subTableOffset, subTableCount);
 
   inline bool is_right_to_left (void) const { return lookupFlag & LookupFlag::RightToLeft; }
   inline bool ignore_base_glyphs(void) const { return lookupFlag & LookupFlag::IgnoreBaseGlyphs; }
@@ -716,16 +715,16 @@ main (int argc, char **argv)
   
   printf ("Opened font file %s: %d bytes long\n", argv[1], len);
   
-  const OpenTypeFontFile &ot = OpenTypeFontFile::get (font_data);
+  const OpenTypeFontFaceFile &ot = OpenTypeFontFaceFile::get (font_data);
 
   switch (ot.tag) {
-  case OpenTypeFontFile::TrueTypeTag:
+  case OpenTypeFontFaceFile::TrueTypeTag:
     printf ("OpenType font with TrueType outlines\n");
     break;
-  case OpenTypeFontFile::CFFTag:
+  case OpenTypeFontFaceFile::CFFTag:
     printf ("OpenType font with CFF (Type1) outlines\n");
     break;
-  case OpenTypeFontFile::TTCTag:
+  case OpenTypeFontFaceFile::TTCTag:
     printf ("TrueType Collection of OpenType fonts\n");
     break;
   default:
@@ -736,7 +735,7 @@ main (int argc, char **argv)
   int num_fonts = ot.get_len ();
   printf ("%d font(s) found in file\n", num_fonts);
   for (int n_font = 0; n_font < num_fonts; n_font++) {
-    const OpenTypeFont &font = ot[n_font];
+    const OpenTypeFontFace &font = ot[n_font];
     printf ("Font %d of %d:\n", n_font+1, num_fonts);
 
     int num_tables = font.get_len ();
@@ -763,8 +762,11 @@ main (int argc, char **argv)
          printf ("      %d language system(s) found in script\n", num_langsys);
          for (int n_langsys = 0; n_langsys < num_langsys; n_langsys++) {
            const LangSys &langsys = script[n_langsys];
-           printf ("      Language System %2d of %2d: %.4s\n", n_langsys+1, num_langsys,
-                   (const char *)script.get_tag(n_langsys));
+           printf ("      Language System %2d of %2d: %.4s; %d features\n", n_langsys+1, num_langsys,
+                   (const char *)script.get_tag(n_langsys),
+                   langsys.get_len ());
+           if (!langsys.get_required_feature_index ())
+             printf ("        No required feature\n");
          }
        }