int lookAheadPictorgraphicExtend()

in lib/src/grapheme_clusters/breaks.dart [208:230]


int lookAheadPictorgraphicExtend(String base, int start, int cursor) {
  // Has just seen ZWJ+Pictographic. Check if preceeding is Pic Ext*.
  // (If so, just move cursor back to the Pic).
  var index = cursor;
  while (index > start) {
    var char = base.codeUnitAt(--index);
    var prevChar = 0;
    var category = categoryControl;
    if (char & 0xFC00 != 0xDC00) {
      category = low(char);
    } else if (index > start &&
        (prevChar = base.codeUnitAt(--index)) & 0xFC00 == 0xD800) {
      category = high(prevChar, char);
    } else {
      break;
    }
    if (category == categoryPictographic) {
      return index;
    }
    if (category != categoryExtend) break;
  }
  return -1;
}