diff options
Diffstat (limited to 'Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp')
-rw-r--r-- | Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp b/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp deleted file mode 100644 index 391ffe649ee..00000000000 --- a/Build/source/libs/icu-xetex/layout/LigatureSubstSubtables.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved - * - */ - -#include "LETypes.h" -#include "LEGlyphFilter.h" -#include "OpenTypeTables.h" -#include "GlyphSubstitutionTables.h" -#include "LigatureSubstSubtables.h" -#include "GlyphIterator.h" -#include "LESwaps.h" - -U_NAMESPACE_BEGIN - -le_uint32 LigatureSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const -{ - LEGlyphID glyph = glyphIterator->getCurrGlyphID(); - le_int32 coverageIndex = getGlyphCoverage(glyph); - - if (coverageIndex >= 0) { - Offset ligSetTableOffset = SWAPW(ligSetTableOffsetArray[coverageIndex]); - const LigatureSetTable *ligSetTable = (const LigatureSetTable *) ((char *) this + ligSetTableOffset); - le_uint16 ligCount = SWAPW(ligSetTable->ligatureCount); - - for (le_uint16 lig = 0; lig < ligCount; lig += 1) { - Offset ligTableOffset = SWAPW(ligSetTable->ligatureTableOffsetArray[lig]); - const LigatureTable *ligTable = (const LigatureTable *) ((char *)ligSetTable + ligTableOffset); - le_uint16 compCount = SWAPW(ligTable->compCount) - 1; - le_int32 startPosition = glyphIterator->getCurrStreamPosition(); - TTGlyphID ligGlyph = SWAPW(ligTable->ligGlyph); - le_uint16 comp; - - for (comp = 0; comp < compCount; comp += 1) { - if (! glyphIterator->next()) { - break; - } - - if (LE_GET_GLYPH(glyphIterator->getCurrGlyphID()) != SWAPW(ligTable->componentArray[comp])) { - break; - } - } - - if (comp == compCount && (filter == NULL || filter->accept(LE_SET_GLYPH(glyph, ligGlyph)))) { - GlyphIterator tempIterator(*glyphIterator); - TTGlyphID deletedGlyph = tempIterator.ignoresMarks()? 0xFFFE : 0xFFFF; - - while (comp > 0) { - tempIterator.setCurrGlyphID(deletedGlyph); - tempIterator.prev(); - - comp -= 1; - } - - tempIterator.setCurrGlyphID(ligGlyph); - - return compCount + 1; - } - - glyphIterator->setCurrStreamPosition(startPosition); - } - - } - - return 0; -} - -U_NAMESPACE_END |