}
static int
-set_sunday_quick_search_skip_table(regex_t* reg, int case_expand,
- UChar* s, UChar* end,
- UChar skip[], int* roffset)
+set_sunday_quick_search_or_bmh_skip_table(regex_t* reg, int case_expand,
+ UChar* s, UChar* end,
+ UChar skip[], int* roffset)
{
int i, j, k, len, offset;
int n, clen;
reg->optimize = OPTIMIZE_STR_CASE_FOLD;
if (e->good_case_fold != 0) {
if (e->len >= 2) {
- r = set_sunday_quick_search_skip_table(reg, 1,
+ r = set_sunday_quick_search_or_bmh_skip_table(reg, 1,
reg->exact, reg->exact_end,
reg->map, &(reg->map_offset));
if (r != 0) return r;
ONIGENC_IS_ALLOWED_REVERSE_MATCH(reg->enc, reg->exact, reg->exact_end);
if (e->len >= 2 || (e->len >= 1 && allow_reverse)) {
- r = set_sunday_quick_search_skip_table(reg, 0, reg->exact, reg->exact_end,
- reg->map, &(reg->map_offset));
+ r = set_sunday_quick_search_or_bmh_skip_table(reg, 0,
+ reg->exact, reg->exact_end,
+ reg->map, &(reg->map_offset));
if (r != 0) return r;
reg->optimize = (allow_reverse != 0
/* optimize flags */
enum OptimizeType {
OPTIMIZE_NONE = 0,
- OPTIMIZE_STR, /* Slow Search */
- OPTIMIZE_STR_FAST, /* Sunday quick search or BMH */
- OPTIMIZE_STR_FAST_STEP_FORWARD, /* Sunday quick search or BMH */
- OPTIMIZE_STR_CASE_FOLD_FAST, /* Sunday quick search (ignore case) */
- OPTIMIZE_STR_CASE_FOLD, /* Slow Search (ignore case) */
- OPTIMIZE_MAP /* char map */
+ OPTIMIZE_STR, /* Slow Search */
+ OPTIMIZE_STR_FAST, /* Sunday quick search / BMH */
+ OPTIMIZE_STR_FAST_STEP_FORWARD, /* Sunday quick search / BMH */
+ OPTIMIZE_STR_CASE_FOLD_FAST, /* Sunday quick search / BMH (ignore case) */
+ OPTIMIZE_STR_CASE_FOLD, /* Slow Search (ignore case) */
+ OPTIMIZE_MAP /* char map */
};
/* bit status */