if (flags & SCF_DO_STCLASS_AND) {
if (!(data->start_class->flags & ANYOF_LOCALE)) {
ANYOF_CLASS_CLEAR(data->start_class,ANYOF_NALNUM);
- if (FLAGS(scan) & USE_UNI) {
+ if (FLAGS(scan) == REGEX_UNICODE_CHARSET) {
for (value = 0; value < 256; value++) {
if (!isWORDCHAR_L1(value)) {
ANYOF_BITMAP_CLEAR(data->start_class, value);
else {
if (data->start_class->flags & ANYOF_LOCALE)
ANYOF_CLASS_SET(data->start_class,ANYOF_ALNUM);
- else if (FLAGS(scan) & USE_UNI) {
+ else if (FLAGS(scan) == REGEX_UNICODE_CHARSET) {
for (value = 0; value < 256; value++) {
if (isWORDCHAR_L1(value)) {
ANYOF_BITMAP_SET(data->start_class, value);
if (flags & SCF_DO_STCLASS_AND) {
if (!(data->start_class->flags & ANYOF_LOCALE)) {
ANYOF_CLASS_CLEAR(data->start_class,ANYOF_ALNUM);
- if (FLAGS(scan) & USE_UNI) {
+ if (FLAGS(scan) == REGEX_UNICODE_CHARSET) {
for (value = 0; value < 256; value++) {
if (isWORDCHAR_L1(value)) {
ANYOF_BITMAP_CLEAR(data->start_class, value);
if (flags & SCF_DO_STCLASS_AND) {
if (!(data->start_class->flags & ANYOF_LOCALE)) {
ANYOF_CLASS_CLEAR(data->start_class,ANYOF_NSPACE);
- if (FLAGS(scan) & USE_UNI) {
+ if (FLAGS(scan) == REGEX_UNICODE_CHARSET) {
for (value = 0; value < 256; value++) {
if (!isSPACE_L1(value)) {
ANYOF_BITMAP_CLEAR(data->start_class, value);
if (data->start_class->flags & ANYOF_LOCALE) {
ANYOF_CLASS_SET(data->start_class,ANYOF_SPACE);
}
- else if (FLAGS(scan) & USE_UNI) {
+ else if (FLAGS(scan) == REGEX_UNICODE_CHARSET) {
for (value = 0; value < 256; value++) {
if (isSPACE_L1(value)) {
ANYOF_BITMAP_SET(data->start_class, value);
if (flags & SCF_DO_STCLASS_AND) {
if (!(data->start_class->flags & ANYOF_LOCALE)) {
ANYOF_CLASS_CLEAR(data->start_class,ANYOF_SPACE);
- if (FLAGS(scan) & USE_UNI) {
+ if (FLAGS(scan) == REGEX_UNICODE_CHARSET) {
for (value = 0; value < 256; value++) {
if (isSPACE_L1(value)) {
ANYOF_BITMAP_CLEAR(data->start_class, value);
else {
if (data->start_class->flags & ANYOF_LOCALE)
ANYOF_CLASS_SET(data->start_class,ANYOF_NSPACE);
- else if (FLAGS(scan) & USE_UNI) {
+ else if (FLAGS(scan) == REGEX_UNICODE_CHARSET) {
for (value = 0; value < 256; value++) {
if (!isSPACE_L1(value)) {
ANYOF_BITMAP_SET(data->start_class, value);
ret = reg_node(pRExC_state, (U8)(ALNUML));
} else {
ret = reg_node(pRExC_state, (U8)(ALNUM));
- FLAGS(ret) = (UNI_SEMANTICS) ? USE_UNI : 0;
}
+ FLAGS(ret) = get_regex_charset(RExC_flags);
*flagp |= HASWIDTH|SIMPLE;
goto finish_meta_pat;
case 'W':
ret = reg_node(pRExC_state, (U8)(NALNUML));
} else {
ret = reg_node(pRExC_state, (U8)(NALNUM));
- FLAGS(ret) = (UNI_SEMANTICS) ? USE_UNI : 0;
}
+ FLAGS(ret) = get_regex_charset(RExC_flags);
*flagp |= HASWIDTH|SIMPLE;
goto finish_meta_pat;
case 'b':
ret = reg_node(pRExC_state, (U8)(BOUNDL));
} else {
ret = reg_node(pRExC_state, (U8)(BOUND));
- FLAGS(ret) = (UNI_SEMANTICS) ? USE_UNI : 0;
}
+ FLAGS(ret) = get_regex_charset(RExC_flags);
*flagp |= SIMPLE;
goto finish_meta_pat;
case 'B':
ret = reg_node(pRExC_state, (U8)(NBOUNDL));
} else {
ret = reg_node(pRExC_state, (U8)(NBOUND));
- FLAGS(ret) = (UNI_SEMANTICS) ? USE_UNI : 0;
}
+ FLAGS(ret) = get_regex_charset(RExC_flags);
*flagp |= SIMPLE;
goto finish_meta_pat;
case 's':
ret = reg_node(pRExC_state, (U8)(SPACEL));
} else {
ret = reg_node(pRExC_state, (U8)(SPACE));
- FLAGS(ret) = (UNI_SEMANTICS) ? USE_UNI : 0;
}
+ FLAGS(ret) = get_regex_charset(RExC_flags);
*flagp |= HASWIDTH|SIMPLE;
goto finish_meta_pat;
case 'S':
ret = reg_node(pRExC_state, (U8)(NSPACEL));
} else {
ret = reg_node(pRExC_state, (U8)(NSPACE));
- FLAGS(ret) = (UNI_SEMANTICS) ? USE_UNI : 0;
}
+ FLAGS(ret) = get_regex_charset(RExC_flags);
*flagp |= HASWIDTH|SIMPLE;
goto finish_meta_pat;
case 'd':
* between 128 and 255 using Unicode (latin1) semantics. */
#define CCC_TRY_AFF_U(NAME,NAMEL,CLASS,STR,LCFUNC_utf8,FUNCU,LCFUNC) \
_CCC_TRY_AFF_COMMON(NAME,NAMEL,CLASS,STR,LCFUNC_utf8,FUNC) \
- if (!(OP(scan) == NAMEL ? LCFUNC(nextchr) : (FUNCU(nextchr) && (isASCII(nextchr) || (FLAGS(scan) & USE_UNI))))) \
+ if (!(OP(scan) == NAMEL ? LCFUNC(nextchr) : (FUNCU(nextchr) && (isASCII(nextchr) || (FLAGS(scan) == REGEX_UNICODE_CHARSET))))) \
sayNO; \
nextchr = UCHARAT(++locinput); \
break
#define CCC_TRY_NEG_U(NAME,NAMEL,CLASS,STR,LCFUNC_utf8,FUNCU,LCFUNC) \
_CCC_TRY_NEG_COMMON(NAME,NAMEL,CLASS,STR,LCFUNC_utf8,FUNCU) \
- if ((OP(scan) == NAMEL ? LCFUNC(nextchr) : (FUNCU(nextchr) && (isASCII(nextchr) || (FLAGS(scan) & USE_UNI))))) \
+ if ((OP(scan) == NAMEL ? LCFUNC(nextchr) : (FUNCU(nextchr) && (isASCII(nextchr) || (FLAGS(scan) == REGEX_UNICODE_CHARSET))))) \
sayNO; \
nextchr = UCHARAT(++locinput); \
break
tmp = cBOOL((OP(c) == BOUNDL)
? isALNUM_LC(tmp)
: (isWORDCHAR_L1(tmp)
- && (isASCII(tmp) || (FLAGS(c) & USE_UNI))));
+ && (isASCII(tmp) || (FLAGS(c) == REGEX_UNICODE_CHARSET))));
REXEC_FBC_SCAN(
if (tmp ==
!((OP(c) == BOUNDL)
? isALNUM_LC(*s)
: (isWORDCHAR_L1((U8) *s)
- && (isASCII((U8) *s) || (FLAGS(c) & USE_UNI)))))
+ && (isASCII((U8) *s) || (FLAGS(c) == REGEX_UNICODE_CHARSET)))))
{
tmp = !tmp;
REXEC_FBC_TRYIT;
tmp = cBOOL((OP(c) == NBOUNDL)
? isALNUM_LC(tmp)
: (isWORDCHAR_L1(tmp)
- && (isASCII(tmp) || (FLAGS(c) & USE_UNI))));
+ && (isASCII(tmp) || (FLAGS(c) == REGEX_UNICODE_CHARSET))));
REXEC_FBC_SCAN(
if (tmp == ! cBOOL(
(OP(c) == NBOUNDL)
? isALNUM_LC(*s)
: (isWORDCHAR_L1((U8) *s)
- && (isASCII((U8) *s) || (FLAGS(c) & USE_UNI)))))
+ && (isASCII((U8) *s) || (FLAGS(c) == REGEX_UNICODE_CHARSET)))))
{
tmp = !tmp;
}
REXEC_FBC_CSCAN_PRELOAD(
LOAD_UTF8_CHARCLASS_PERL_WORD(),
swash_fetch(RE_utf8_perl_word, (U8*)s, utf8_target),
- (FLAGS(c) & USE_UNI) ? isWORDCHAR_L1((U8) *s) : isALNUM(*s)
+ (FLAGS(c) == REGEX_UNICODE_CHARSET) ? isWORDCHAR_L1((U8) *s) : isALNUM(*s)
);
case ALNUML:
REXEC_FBC_CSCAN_TAINT(
REXEC_FBC_CSCAN_PRELOAD(
LOAD_UTF8_CHARCLASS_PERL_WORD(),
!swash_fetch(RE_utf8_perl_word, (U8*)s, utf8_target),
- ! ((FLAGS(c) & USE_UNI) ? isWORDCHAR_L1((U8) *s) : isALNUM(*s))
+ ! ((FLAGS(c) == REGEX_UNICODE_CHARSET) ? isWORDCHAR_L1((U8) *s) : isALNUM(*s))
);
case NALNUML:
REXEC_FBC_CSCAN_TAINT(
REXEC_FBC_CSCAN_PRELOAD(
LOAD_UTF8_CHARCLASS_PERL_SPACE(),
*s == ' ' || swash_fetch(RE_utf8_perl_space,(U8*)s, utf8_target),
- isSPACE_L1((U8) *s) && (isASCII((U8) *s) || (FLAGS(c) & USE_UNI))
+ isSPACE_L1((U8) *s) && (isASCII((U8) *s) || (FLAGS(c) == REGEX_UNICODE_CHARSET))
);
case SPACEL:
REXEC_FBC_CSCAN_TAINT(
REXEC_FBC_CSCAN_PRELOAD(
LOAD_UTF8_CHARCLASS_PERL_SPACE(),
!(*s == ' ' || swash_fetch(RE_utf8_perl_space,(U8*)s, utf8_target)),
- !(isSPACE_L1((U8) *s) && (isASCII((U8) *s) || (FLAGS(c) & USE_UNI)))
+ !(isSPACE_L1((U8) *s) && (isASCII((U8) *s) || (FLAGS(c) == REGEX_UNICODE_CHARSET)))
);
case NSPACEL:
REXEC_FBC_CSCAN_TAINT(
else {
ln = (locinput != PL_bostr) ?
UCHARAT(locinput - 1) : '\n';
- if (FLAGS(scan) & USE_UNI) {
+ if (FLAGS(scan) == REGEX_UNICODE_CHARSET) {
/* Here, can't be BOUNDL or NBOUNDL because they never set
- * the flags to USE_UNI */
+ * the flags to REGEX_UNICODE_CHARSET */
ln = isWORDCHAR_L1(ln);
n = isWORDCHAR_L1(nextchr);
}
scan += UTF8SKIP(scan);
hardcount++;
}
- } else if (FLAGS(p) & USE_UNI) {
+ } else if (FLAGS(p) == REGEX_UNICODE_CHARSET) {
while (scan < loceol && isWORDCHAR_L1((U8) *scan)) {
scan++;
}
scan += UTF8SKIP(scan);
hardcount++;
}
- } else if (FLAGS(p) & USE_UNI) {
+ } else if (FLAGS(p) == REGEX_UNICODE_CHARSET) {
while (scan < loceol && ! isWORDCHAR_L1((U8) *scan)) {
scan++;
}
scan += UTF8SKIP(scan);
hardcount++;
}
- } else if (FLAGS(p) & USE_UNI) {
+ } else if (FLAGS(p) == REGEX_UNICODE_CHARSET) {
while (scan < loceol && isSPACE_L1((U8) *scan)) {
scan++;
}
scan += UTF8SKIP(scan);
hardcount++;
}
- } else if (FLAGS(p) & USE_UNI) {
+ } else if (FLAGS(p) == REGEX_UNICODE_CHARSET) {
while (scan < loceol && ! isSPACE_L1((U8) *scan)) {
scan++;
}