Lines Matching refs:type

2437 				// Get types of new inserted chars - or replicate type of char being replaced
2617 // Get types of new inserted chars - or replicate type of char being replaced
2809 /* VOWELS = TRANSPARENT-JOINING = Unicode Transparent-Joining type (not just vowels) */
2899 private function get_arab_glyphs($char, $type, &$chars, $i, $scriptTag, $usetags)
2902 if (($type === 0 && strpos($usetags, 'isol') === false) || ($type === 1 && strpos($usetags, 'fina') === false) || ($type === 2 && strpos($usetags, 'init') === false) || ($type === 3 && strpos($usetags, 'medi') === false)) {
2937 if (($type > 0 || $type === 0) && isset($this->arabGlyphs[$char][$type])) {
2938 $retk = $type;
2939 } elseif ($type == 3 && isset($this->arabGlyphs[$char][1])) { // if <medial> not defined, but <final>, return <final>
2941 } elseif ($type == 2 && isset($this->arabGlyphs[$char][0])) { // if <initial> not defined, but <isolated>, return <isolated>
3088 Node type: Split.
3092 Node type: Linear match.
4557 * At this stage the bidi-type is in string form
4671 // b. When the directional override status is not neutral, reset the current character type to directional override status.
4683 $chardata[] = ['char' => $chunkOTLdata['char_data'][$i]['uni'], 'level' => $cel, 'type' => $chardir, 'group' => $chunkOTLdata['group'][$i], 'GPOSinfo' => $gpos];
4720 // Weak types are now resolved one level run at a time. At level run boundaries where the type of the character on the other side of the boundary is required, the type assigned to sor or eor is used.
4722 // W1. Examine each nonspacing mark (NSM) in the level run, and change the type of the NSM to the type of the previous character. If the NSM is at the start of the level run, it will get the type of sor.
4724 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_NSM) {
4726 $chardata[$i]['type'] = $chardata[$i]['sor'];
4728 $chardata[$i]['type'] = $chardata[($i - 1)]['type'];
4733 // W2. Search backward from each instance of a European number until the first strong type (R, L, AL, or sor) is found. If an AL is found, change the type of the European number to Arabic number.
4737 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN) {
4740 if ($chardata[$j]['type'] == Ucdn::BIDI_CLASS_AL) {
4741 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_AN;
4744 } elseif (($chardata[$j]['type'] == Ucdn::BIDI_CLASS_L) || ($chardata[$j]['type'] == Ucdn::BIDI_CLASS_R)) {
4760 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_AL) {
4761 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_R;
4765 // W4. A single European separator between two European numbers changes to a European number. A single common separator between two numbers of the same type changes to that type.
4768 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ES && $chardata[($i - 1)]['type'] == Ucdn::BIDI_CLASS_EN && $chardata[($i + 1)]['type'] == Ucdn::BIDI_CLASS_EN) {
4769 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_EN;
4770 } elseif ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_CS && $chardata[($i - 1)]['type'] == Ucdn::BIDI_CLASS_EN && $chardata[($i + 1)]['type'] == Ucdn::BIDI_CLASS_EN) {
4771 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_EN;
4772 } elseif ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_CS && $chardata[($i - 1)]['type'] == Ucdn::BIDI_CLASS_AN && $chardata[($i + 1)]['type'] == Ucdn::BIDI_CLASS_AN) {
4773 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_AN;
4780 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ET) {
4781 if ($i > 0 && $chardata[($i - 1)]['type'] == Ucdn::BIDI_CLASS_EN && $chardata[($i)]['level'] == $chardata[($i - 1)]['level']) {
4782 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_EN;
4786 if ($chardata[$j]['type'] == Ucdn::BIDI_CLASS_EN) {
4787 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_EN;
4789 } elseif ($chardata[$j]['type'] != Ucdn::BIDI_CLASS_ET) {
4800 if (($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ET) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ES) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_CS)) {
4801 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_ON;
4805 //W7. Search backward from each instance of a European number until the first strong type (R, L, or sor) is found. If an L is found, then change the type of the European number to L.
4807 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN) {
4810 $chardata[$i]['type'] = $chardata[$i]['sor'];
4816 $chardata[$i]['type'] = $chardata[$j + 1]['sor'];
4819 } elseif ($chardata[$j]['type'] == Ucdn::BIDI_CLASS_L) {
4820 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_L;
4822 } elseif ($chardata[$j]['type'] == Ucdn::BIDI_CLASS_R) {
4832 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ON || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_WS) {
4839 } elseif ($chardata[($i - 1)]['type'] == Ucdn::BIDI_CLASS_L) {
4841 } elseif ($chardata[($i - 1)]['type'] == Ucdn::BIDI_CLASS_R || $chardata[($i - 1)]['type'] == Ucdn::BIDI_CLASS_EN || $chardata[($i - 1)]['type'] == Ucdn::BIDI_CLASS_AN) {
4848 while (($chardata[$j]['type'] == Ucdn::BIDI_CLASS_ON || $chardata[$j]['type'] == Ucdn::BIDI_CLASS_WS) && $j <= ($numchars - 1)) {
4855 } elseif ($chardata[($j + 1)]['type'] == Ucdn::BIDI_CLASS_L) {
4858 } elseif ($chardata[($j + 1)]['type'] == Ucdn::BIDI_CLASS_R || $chardata[($j + 1)]['type'] == Ucdn::BIDI_CLASS_EN || $chardata[($j + 1)]['type'] == Ucdn::BIDI_CLASS_AN) {
4865 $chardata[$i]['orig_type'] = $chardata[$i]['type']; // Need to store the original 'WS' for reference in L1 below
4866 $chardata[$i]['type'] = $left;
4873 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ON || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_WS) {
4874 $chardata[$i]['type'] = ($chardata[$i]['level'] % 2) ? Ucdn::BIDI_CLASS_R : Ucdn::BIDI_CLASS_L;
4875 $chardata[$i]['orig_type'] = $chardata[$i]['type']; // Need to store the original 'WS' for reference in L1 below
4879 // I1. For all characters with an even (left-to-right) embedding direction, those of type R go up one level and those of type AN or EN go up two levels.
4880 // I2. For all characters with an odd (right-to-left) embedding direction, those of type L, EN or AN go up one level.
4884 if (($chardata[$i]['type'] == Ucdn::BIDI_CLASS_L) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_AN) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN)) {
4888 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_R) {
4890 } elseif (($chardata[$i]['type'] == Ucdn::BIDI_CLASS_AN) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN)) {
4909 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_WS || (isset($chardata[$i]['orig_type']) && $chardata[$i]['orig_type'] == Ucdn::BIDI_CLASS_WS)) {
4927 if (isset(Ucdn::$mirror_pairs[$chardata[$i]['char']]) && $chardata[$i]['type'] == Ucdn::BIDI_CLASS_R) {
4961 if ($cd['type'] == Ucdn::BIDI_CLASS_L) {
4963 } elseif ($cd['type'] == Ucdn::BIDI_CLASS_R) {
5078 $chunkOTLdata['char_data'][$i]['type'] = $chardir;
5163 $chunkOTLdata['char_data'][$i]['type'] = $chardir;
5174 // b. When the directional override status is not neutral, reset the current character type to directional override status.
5184 $chunkOTLdata['char_data'][$i]['type'] = $chardir;
5261 // Weak types are now resolved one level run at a time. At level run boundaries where the type of the character on the other side of the boundary is required, the type assigned to sor or eor is used.
5263 // W1. Examine each nonspacing mark (NSM) in the level run, and change the type of the NSM to the type of the previous character. If the NSM is at the start of the level run, it will get the type of sor.
5273 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_NSM) {
5275 $chardata[$i]['type'] = $chardata[$i]['sor'];
5277 $chardata[$i]['type'] = $prevtype;
5280 $prevtype = $chardata[$i]['type'];
5285 // W2. Search backward from each instance of a European number until the first strong type (R, L, AL or sor) is found. If an AL is found, change the type of the European number to Arabic number.
5298 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN && $laststrongtype == Ucdn::BIDI_CLASS_AL) {
5299 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_AN;
5301 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_L || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_R || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_AL) {
5302 $laststrongtype = $chardata[$i]['type'];
5314 if (isset($chardata[$i]['type']) && $chardata[$i]['type'] == Ucdn::BIDI_CLASS_AL) {
5315 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_R;
5321 // W4. A single European separator between two European numbers changes to a European number. A single common separator between two numbers of the same type changes to that type.
5332 // Get next type
5344 $nexttype = $para[$nc2][18]['char_data'][$i2]['type'];
5350 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ES && $prevtype == Ucdn::BIDI_CLASS_EN && $nexttype == Ucdn::BIDI_CLASS_EN) {
5351 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_EN;
5352 } elseif ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_CS && $prevtype == Ucdn::BIDI_CLASS_EN && $nexttype == Ucdn::BIDI_CLASS_EN) {
5353 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_EN;
5354 } elseif ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_CS && $prevtype == Ucdn::BIDI_CLASS_AN && $nexttype == Ucdn::BIDI_CLASS_AN) {
5355 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_AN;
5358 $prevtype = $chardata[$i]['type'];
5378 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ET) {
5380 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_EN;
5394 $nexttype = $para[$nc2][18]['char_data'][$i2]['type'];
5399 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_EN;
5407 $prevtype = $chardata[$i]['type'];
5417 if (isset($chardata[$i]['type']) && (($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ET) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ES) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_CS))) {
5418 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_ON;
5423 //W7. Search backward from each instance of a European number until the first strong type (R, L, or sor) is found. If an L is found, then change the type of the European number to L.
5436 if (isset($chardata[$i]['type']) && $chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN && $laststrongtype == Ucdn::BIDI_CLASS_L) {
5437 $chardata[$i]['type'] = Ucdn::BIDI_CLASS_L;
5439 if (isset($chardata[$i]['type']) && ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_L || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_R || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_AL)) {
5440 $laststrongtype = $chardata[$i]['type'];
5459 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ON || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_WS) {
5486 $nexttype = $para[$nc2][18]['char_data'][$i2]['type'];
5501 $chardata[$i]['orig_type'] = $chardata[$i]['type']; // Need to store the original 'WS' for reference in L1 below
5502 $chardata[$i]['type'] = $left;
5504 } elseif ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_L || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_R || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_AN) {
5505 $laststrongtype = $chardata[$i]['type'];
5516 if (isset($chardata[$i]['type']) && ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_ON || $chardata[$i]['type'] == Ucdn::BIDI_CLASS_WS)) {
5517 $chardata[$i]['orig_type'] = $chardata[$i]['type']; // Need to store the original 'WS' for reference in L1 below
5518 $chardata[$i]['type'] = ($chardata[$i]['level'] % 2) ? Ucdn::BIDI_CLASS_R : Ucdn::BIDI_CLASS_L;
5523 // I1. For all characters with an even (left-to-right) embedding direction, those of type R go up one level and those of type AN or EN go up two levels.
5524 // I2. For all characters with an odd (right-to-left) embedding direction, those of type L, EN or AN go up one level.
5532 if (($chardata[$i]['type'] == Ucdn::BIDI_CLASS_L) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_AN) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN)) {
5536 if ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_R) {
5538 } elseif (($chardata[$i]['type'] == Ucdn::BIDI_CLASS_AN) || ($chardata[$i]['type'] == Ucdn::BIDI_CLASS_EN)) {
5584 if (isset($cOTLdata[$nc]['char_data'][$i]['type'])) {
5585 $carac['type'] = $cOTLdata[$nc]['char_data'][$i]['type'];
5621 if ($bidiData[$i]['type'] == Ucdn::BIDI_CLASS_WS || (isset($bidiData[$i]['orig_type']) && $bidiData[$i]['orig_type'] == Ucdn::BIDI_CLASS_WS)) {
5637 if (isset(Ucdn::$mirror_pairs[$bidiData[$i]['uni']]) && $bidiData[$i]['type'] == Ucdn::BIDI_CLASS_R) {