ssc_clear_locale(data->start_class);
}
else if (flags & SCF_DO_STCLASS_OR) {
- CLEAR_SSC_EOS(data->start_class);
ssc_add_cp(data->start_class, uc);
ssc_and(pRExC_state, data->start_class, and_withp);
}
ssc_intersection(data->start_class, EXACTF_invlist, FALSE);
}
else if (flags & SCF_DO_STCLASS_OR) {
- CLEAR_SSC_EOS(data->start_class);
ssc_union(data->start_class, EXACTF_invlist, FALSE);
ssc_and(pRExC_state, data->start_class, and_withp);
}
PL_XPosix_ptrs[_CC_VERTSPACE],
FALSE);
ssc_and(pRExC_state, data->start_class, and_withp);
- CLEAR_SSC_EOS(data->start_class); /* No match on empty */
}
flags &= ~SCF_DO_STCLASS;
}
U8 classnum;
U8 namedclass;
- CLEAR_SSC_EOS(data->start_class); /* No match on empty */
+ if (flags & SCF_DO_STCLASS_AND) {
+ CLEAR_SSC_EOS(data->start_class); /* No match on empty */
+ }
/* Some of the logic below assumes that switching
locale on will only add false positives. */