static int code_to_mbclen(OnigCodePoint code) { if (code < 256) { if (EncLen_SJIS[(int )code] == 1) return 1; else return 0; } else if (code <= 0xffff) { int low = code & 0xff; if (! SJIS_ISMB_TRAIL(low)) return ONIGERR_INVALID_CODE_POINT_VALUE; return 2; } else return ONIGERR_INVALID_CODE_POINT_VALUE; }
static int code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED) { if (code < 256) { if (EncLen_SJIS[(int )code] == 1) return 1; else return ONIGERR_INVALID_CODE_POINT_VALUE; } else if (code <= 0xffff) { int low = code & 0xff; if (! SJIS_ISMB_TRAIL(low)) return ONIGERR_INVALID_CODE_POINT_VALUE; return 2; } else return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; }
static UChar* left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) { const UChar *p; int len; if (s <= start) return (UChar* )s; p = s; if (SJIS_ISMB_TRAIL(*p)) { while (p > start) { if (! SJIS_ISMB_FIRST(*--p)) { p++; break; } } } len = enclen(enc, p, end); if (p + len > s) return (UChar* )p; p += len; return (UChar* )(p + ((s - p) & ~1)); }
static int is_allowed_reverse_match(const UChar* s, const UChar* end, OnigEncoding enc ARG_UNUSED) { const UChar c = *s; return (SJIS_ISMB_TRAIL(c) ? FALSE : TRUE); }