Lines Matching full:ccc
156 * defined. The CCC of a non-defined code point is 0.
159 * with a non-zero CCC that occur between two characters with
160 * a CCC of 0, or at the begin or end of a string.
161 * The unicode standard guarantees that all CCC values are
164 * Code points with CCC 0 are known as stoppers.
168 * The CCC of a decomposable character is the same as the CCC
172 * These do affect normalization, as they all have CCC 0.
433 u8c->ccc = STOPPER; in utf8ncursor()
454 * Characters are emitted if they match the current CCC in u8c->ccc.
455 * Hitting end-of-string while u8c->ccc == STOPPER means we're done,
458 * Sorting by CCC is done by repeatedly scanning the string. The
460 * the start of the scan. The first pass finds the lowest CCC to be
462 * characters with this CCC and finds the next lowest CCC. This limits
469 * u8c->ccc == -1 -> this is the first scan of a repeating scan.
474 int ccc; in utf8byte() local
486 if (u8c->ccc == STOPPER) in utf8byte()
489 ccc = STOPPER; in utf8byte()
510 ccc = LEAF_CCC(leaf); in utf8byte()
511 /* Characters that are too new have CCC 0. */ in utf8byte()
514 ccc = STOPPER; in utf8byte()
515 } else if (ccc == DECOMPOSE) { in utf8byte()
519 /* Empty decomposition implies CCC 0. */ in utf8byte()
521 if (u8c->ccc == STOPPER) in utf8byte()
523 ccc = STOPPER; in utf8byte()
530 ccc = LEAF_CCC(leaf); in utf8byte()
537 if (ccc != STOPPER && u8c->ccc < ccc && ccc < u8c->nccc) in utf8byte()
538 u8c->nccc = ccc; in utf8byte()
544 if (ccc == u8c->ccc) { in utf8byte()
558 u8c->ccc = MINCCC - 1; in utf8byte()
559 u8c->nccc = ccc; in utf8byte()
566 } else if (ccc != STOPPER) { in utf8byte()
567 /* Not a stopper, and not the ccc we're emitting. */ in utf8byte()
572 /* At a stopper, restart for next ccc. */ in utf8byte()
573 u8c->ccc = u8c->nccc; in utf8byte()
580 u8c->ccc = STOPPER; in utf8byte()