Esempio n. 1
0
int startOfLastWordBoundaryContext(const UChar* characters, int length) {
  for (int i = length; i > 0;) {
    int last = i;
    UChar32 ch;
    U16_PREV(characters, 0, i, ch);
    if (!requiresContextForWordBoundary(ch))
      return last;
  }
  return 0;
}
Esempio n. 2
0
int endOfFirstWordBoundaryContext(const UChar* characters, int length) {
  for (int i = 0; i < length;) {
    int first = i;
    UChar32 ch;
    U16_NEXT(characters, i, length, ch);
    if (!requiresContextForWordBoundary(ch))
      return first;
  }
  return length;
}
unsigned startOfLastWordBoundaryContext(StringView text)
{
    unsigned length = text.length();
    for (unsigned i = length; i > 0; ) {
        unsigned last = i;
        UChar32 ch;
        U16_PREV(text, 0, i, ch);
        if (!requiresContextForWordBoundary(ch))
            return last;
    }
    return 0;
}
unsigned endOfFirstWordBoundaryContext(StringView text)
{
    unsigned length = text.length();
    for (unsigned i = 0; i < length; ) {
        unsigned first = i;
        UChar32 ch;
        U16_NEXT(text, i, length, ch);
        if (!requiresContextForWordBoundary(ch))
            return first;
    }
    return length;
}