]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/layout/GlyphSubstitutionTables.cpp
ICU-491.11.1.tar.gz
[apple/icu.git] / icuSources / layout / GlyphSubstitutionTables.cpp
index b5231a7de054e86d6208d091196b14ad132397a5..bdd81277124881af215e09284e2a693e0f041b91 100644 (file)
@@ -1,7 +1,6 @@
 /*
 /*
- * @(#)GlyphSubstitutionTables.cpp     1.9 00/03/15
  *
  *
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
  *
  */
 
  *
  */
 
 #include "OpenTypeTables.h"
 #include "Lookups.h"
 #include "GlyphDefinitionTables.h"
 #include "OpenTypeTables.h"
 #include "Lookups.h"
 #include "GlyphDefinitionTables.h"
-#include "GlyphPositionAdjustments.h"
 #include "GlyphSubstitutionTables.h"
 #include "GlyphSubstLookupProc.h"
 #include "ScriptAndLanguage.h"
 #include "GlyphSubstitutionTables.h"
 #include "GlyphSubstLookupProc.h"
 #include "ScriptAndLanguage.h"
+#include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
 U_NAMESPACE_BEGIN
 
 #include "LESwaps.h"
 
 U_NAMESPACE_BEGIN
 
-void GlyphSubstitutionTableHeader::process(LEGlyphID *glyphs, const LETag **glyphTags, le_int32 glyphCount,
-                                           le_bool rightToLeft, LETag scriptTag, LETag languageTag,
-                                           const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
-                                           const LEGlyphFilter *filter, const LETag *featureOrder) const
+le_int32 GlyphSubstitutionTableHeader::process(LEGlyphStorage &glyphStorage,
+                                               le_bool rightToLeft, 
+                                               LETag scriptTag, 
+                                               LETag languageTag,
+                                               const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, 
+                                               const LEGlyphFilter *filter, 
+                                               const FeatureMap *featureMap, 
+                                               le_int32 featureMapCount, 
+                                               le_bool featureOrder,
+                                               LEErrorCode &success) const
 {
 {
-    GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureOrder);
+    if (LE_FAILURE(success)) {
+        return 0;
+    } 
 
 
-    processor.process(glyphs, NULL, glyphTags, glyphCount, rightToLeft, glyphDefinitionTableHeader, NULL);
-}
-
-le_bool GlyphSubstitutionTableHeader::coversScript(LETag scriptTag) const
-{
-    const ScriptListTable *scriptListTable = (const ScriptListTable *) ((char *)this + SWAPW(scriptListOffset));
-
-    return scriptListTable->findScript(scriptTag) != NULL;
-}
-
-le_bool GlyphSubstitutionTableHeader::coversScriptAndLanguage(LETag scriptTag, LETag languageTag) const
-{
-    const ScriptListTable *scriptListTable = (const ScriptListTable *) ((char *)this + SWAPW(scriptListOffset));
-
-    return scriptListTable->findLanguage(scriptTag, languageTag, true) != NULL;
+    GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap, featureMapCount, featureOrder, success);
+    return processor.process(glyphStorage, NULL, rightToLeft, glyphDefinitionTableHeader, NULL, success);
 }
 
 U_NAMESPACE_END
 }
 
 U_NAMESPACE_END