Home | History | Annotate | Download | only in layout

Lines Matching full:chars

597 le_int32 IndicReordering::findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
604 IndicClassTable::CharClass charClass = classTable->getCharClass(chars[cursor]);
625 le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le_int32 scriptCode,
654 le_int32 syllable = findSyllable(classTable, chars, prev, charCount);
659 if (classTable->isStressMark(chars[markStart - 1])) {
661 output.noteStressMark(classTable, chars[markStart], markStart, tagArray1);
664 if (markStart != prev && classTable->isVowelModifier(chars[markStart - 1])) {
666 output.noteVowelModifier(classTable, chars[markStart], markStart, tagArray1);
671 while (output.noteMatra(classTable, chars[matra], matra, tagArray1, !lastInWord) && matra != prev) {
677 switch (classTable->getCharClass(chars[prev]) & CF_CLASS_MASK) {
685 output.writeChar(chars[i], i, tagArray1);
693 output.writeChar(chars[prev], prev, tagArray1);
700 if (chars[prev - 1] != C_MALAYALAM_VOWEL_SIGN_U) {
704 output.writeChar(chars[prev], prev, tagArray1);
755 if (length > 2 && classTable->isReph(chars[prev]) && classTable->isVirama(chars[prev + 1]) && chars[prev + 2] != C_SIGN_ZWNJ) {
760 chars[baseLimit] == C_SIGN_ZWJ) {
769 while (lastConsonant > baseLimit && !classTable->isConsonant(chars[lastConsonant])) {
787 if (postBase < markStart && classTable->isNukta(chars[postBase])) {
795 charClass = classTable->getCharClass(chars[baseConsonant]);
803 (baseConsonant > baseLimit && !classTable->isVirama(chars[baseConsonant - 1])) ||
810 hasPreBaseForm && classTable->isVirama(chars[baseConsonant - 1])) {
811 output.notePreBaseConsonant(lastConsonant,chars[lastConsonant],chars[lastConsonant-1],tagArray2);
841 output.writeChar(chars[prev], prev, tagArray2);
842 output.writeChar(chars[prev + 1], prev + 1, tagArray2);
843 output.writeChar(chars[prev + 2], prev + 2, tagArray2);
852 LEUnicode ch = chars[i];
857 nextClass = classTable->getCharClass(chars[i + 1]);
866 } else if (IndicClassTable::isVirama(charClass) && chars[i + 1] == C_SIGN_ZWNJ)
876 if (bcSpan < markStart && classTable->isNukta(chars[bcSpan])) {
881 (classTable->isVirama(chars[bcSpan]) || classTable->isAlLakuna(chars[bcSpan]))) {
884 if (bcSpan < markStart && chars[bcSpan] == C_SIGN_ZWNJ) {
894 output.writeChar(chars[i], i, tagArray4);
907 output.writeChar(chars[i], i, tagArray1);
912 output.writeChar(chars[bcSpan], bcSpan, tagArray1);
925 output.writeChar(chars[prev], prev, tagArray0);
926 output.writeChar(chars[prev + 1], prev + 1, tagArray0);
938 output.writeChar(chars[i], i, tagArray3);
942 output.writeChar(chars[bcSpan], bcSpan, tagArray1);
946 if (lastConsonant < matra && classTable->isVirama(chars[matra])) {
947 output.writeChar(chars[matra], matra, tagArray4);
962 output.writeChar(chars[prev], prev, tagArray0);
963 output.writeChar(chars[prev + 1], prev + 1, tagArray0);
1073 le_int32 IndicReordering::v2process(const LEUnicode *chars, le_int32 charCount, le_int32 scriptCode,
1089 le_int32 nextSyllable = findSyllable(classTable, chars, beginSyllable, charCount);
1095 if ( classTable->isConsonant(chars[firstConsonant]) ) {
1108 if ( classTable->isConsonant(chars[baseConsonant]) &&
1109 !classTable->hasBelowBaseForm(chars[baseConsonant]) &&
1110 !classTable->hasPostBaseForm(chars[baseConsonant]) ) {
1114 if ( classTable->isConsonant(chars[baseConsonant]) ) {
1124 if ( classTable->isReph(chars[beginSyllable]) &&
1125 beginSyllable+1 < nextSyllable && classTable->isVirama(chars[beginSyllable+1]) &&
1135 if ( classTable->isVirama(chars[beginSyllable]) ||
1136 classTable->isMatra(chars[beginSyllable]) ||
1137 classTable->isVowelModifier(chars[beginSyllable]) ||
1138 classTable->isNukta(chars[beginSyllable]) ) {
1142 output.writeChar(chars[i],i, basicShapingFormsMask);
1158 if ( i == beginSyllable && i < baseConsonant && classTable->isReph(chars[i]) &&
1159 i+1 < nextSyllable && classTable->isVirama(chars[i+1])) {
1170 if ( classTable->isMatra(chars[i])) {
1172 if ( classTable->hasAboveBaseForm(chars[i])) {
1174 } else if ( classTable->hasBelowBaseForm(chars[i])) {
1182 if ( classTable->isVirama(chars[i]) && (i+1 == nextSyllable) ) {
1184 if ( classTable->isConsonant(chars[i-1]) ) {