diff options
Diffstat (limited to 'Build/source/libs/icu/icu-src/source/layout/LigatureSubstSubtables.cpp')
-rw-r--r-- | Build/source/libs/icu/icu-src/source/layout/LigatureSubstSubtables.cpp | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/Build/source/libs/icu/icu-src/source/layout/LigatureSubstSubtables.cpp b/Build/source/libs/icu/icu-src/source/layout/LigatureSubstSubtables.cpp deleted file mode 100644 index 16d61ed174c..00000000000 --- a/Build/source/libs/icu/icu-src/source/layout/LigatureSubstSubtables.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * (C) Copyright IBM Corp. 1998-2015 - 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(const LETableReference &base, GlyphIterator *glyphIterator, LEErrorCode &success, const LEGlyphFilter *filter) const -{ - LEGlyphID glyph = glyphIterator->getCurrGlyphID(); - le_int32 coverageIndex = getGlyphCoverage(base, glyph, success); - - 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; - LEReferenceToArrayOf<TTGlyphID> - componentArrayRef(base, success, ligTable->componentArray, compCount); - if (LE_FAILURE(success)) { return 0; } - 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 |