static utf8proc_bool grapheme_break_simple()

in subversion/libsvn_subr/utf8proc/utf8proc.c [251:283]


static utf8proc_bool grapheme_break_simple(int lbc, int tbc) {
  return
    (lbc == UTF8PROC_BOUNDCLASS_START) ? true :       /* GB1 */
    (lbc == UTF8PROC_BOUNDCLASS_CR &&                 /* GB3 */
     tbc == UTF8PROC_BOUNDCLASS_LF) ? false :         /* --- */
    (lbc >= UTF8PROC_BOUNDCLASS_CR && lbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true :  /* GB4 */
    (tbc >= UTF8PROC_BOUNDCLASS_CR && tbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true :  /* GB5 */
    (lbc == UTF8PROC_BOUNDCLASS_L &&                  /* GB6 */
     (tbc == UTF8PROC_BOUNDCLASS_L ||                 /* --- */
      tbc == UTF8PROC_BOUNDCLASS_V ||                 /* --- */
      tbc == UTF8PROC_BOUNDCLASS_LV ||                /* --- */
      tbc == UTF8PROC_BOUNDCLASS_LVT)) ? false :      /* --- */
    ((lbc == UTF8PROC_BOUNDCLASS_LV ||                /* GB7 */
      lbc == UTF8PROC_BOUNDCLASS_V) &&                /* --- */
     (tbc == UTF8PROC_BOUNDCLASS_V ||                 /* --- */
      tbc == UTF8PROC_BOUNDCLASS_T)) ? false :        /* --- */
    ((lbc == UTF8PROC_BOUNDCLASS_LVT ||               /* GB8 */
      lbc == UTF8PROC_BOUNDCLASS_T) &&                /* --- */
     tbc == UTF8PROC_BOUNDCLASS_T) ? false :          /* --- */
    (tbc == UTF8PROC_BOUNDCLASS_EXTEND ||             /* GB9 */
     tbc == UTF8PROC_BOUNDCLASS_ZWJ ||                /* --- */
     tbc == UTF8PROC_BOUNDCLASS_SPACINGMARK ||        /* GB9a */
     lbc == UTF8PROC_BOUNDCLASS_PREPEND) ? false :    /* GB9b */
    ((lbc == UTF8PROC_BOUNDCLASS_E_BASE ||            /* GB10 (requires additional handling below) */
      lbc == UTF8PROC_BOUNDCLASS_E_BASE_GAZ) &&       /* ---- */
     tbc == UTF8PROC_BOUNDCLASS_E_MODIFIER) ? false : /* ---- */
    (lbc == UTF8PROC_BOUNDCLASS_ZWJ &&                         /* GB11 */
     (tbc == UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ ||             /* ---- */
      tbc == UTF8PROC_BOUNDCLASS_E_BASE_GAZ)) ? false :        /* ---- */
    (lbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR &&          /* GB12/13 (requires additional handling below) */
     tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) ? false :  /* ---- */
    true; /* GB999 */
}