Lines Matching refs:new_pos
1381 unsigned int new_pos = base == end ? base - 2 : base - 1;
1389 while (new_pos > start &&
1390 !(is_one_of (info[new_pos], (FLAG (OT_M) | HALANT_OR_COENG_FLAGS))))
1391 new_pos--;
1396 if (is_halant_or_coeng (info[new_pos]) &&
1397 info[new_pos].indic_position() != POS_PRE_M)
1400 if (new_pos + 1 < end && is_joiner (info[new_pos + 1]))
1401 new_pos++;
1404 new_pos = start; /* No move. */
1407 if (start < new_pos && info[new_pos].indic_position () != POS_PRE_M)
1410 for (unsigned int i = new_pos; i > start; i--)
1414 if (old_pos < base && base <= new_pos) /* Shouldn't actually happen. */
1418 memmove (&info[old_pos], &info[old_pos + 1], (new_pos - old_pos) * sizeof (info[0]));
1419 info[new_pos] = tmp;
1423 buffer->merge_clusters (new_pos, MIN (end, base + 1));
1425 new_pos--;
1621 unsigned int new_pos = base;
1628 while (new_pos > start &&
1629 !(is_one_of (info[new_pos - 1], FLAG(OT_M) | HALANT_OR_COENG_FLAGS)))
1630 new_pos--;
1634 if (new_pos > start && info[new_pos - 1].indic_category() == OT_M)
1640 new_pos--;
1646 if (new_pos > start && is_halant_or_coeng (info[new_pos - 1]))
1649 if (new_pos < end && is_joiner (info[new_pos]))
1650 new_pos++;
1656 buffer->merge_clusters (new_pos, old_pos + 1);
1658 memmove (&info[new_pos + 1], &info[new_pos], (old_pos - new_pos) * sizeof (info[0]));
1659 info[new_pos] = tmp;
1661 if (new_pos <= base && base < old_pos)