# define PERL_NO_GET_CONTEXT
#endif
-/*SUPPRESS 112*/
/*
* pregcomp and pregexec -- regsub and regerror are not used in perl
*
char *check_at = Nullch; /* check substr found at this pos */
const I32 multiline = prog->reganch & PMf_MULTILINE;
#ifdef DEBUGGING
- char *i_strpos = strpos;
- SV *dsv = PERL_DEBUG_PAD_ZERO(0);
+ const char * const i_strpos = strpos;
+ SV * const dsv = PERL_DEBUG_PAD_ZERO(0);
#endif
GET_RE_DEBUG_FLAGS_DECL;
if (check == (do_utf8 ? prog->float_utf8 : prog->float_substr)) {
do_other_anchored:
{
- char *last = HOP3c(s, -start_shift, strbeg), *last1, *last2;
+ char * const last = HOP3c(s, -start_shift, strbeg);
+ char *last1, *last2;
char *s1 = s;
SV* must;
regstclass does not come from lookahead... */
/* If regstclass takes bytelength more than 1: If charlength==1, OK.
This leaves EXACTF only, which is dealt with in find_byclass(). */
- const U8* str = (U8*)STRING(prog->regstclass);
+ const U8* const str = (U8*)STRING(prog->regstclass);
const int cl_l = (PL_regkind[(U8)OP(prog->regstclass)] == EXACT
? CHR_DIST(str+STR_LEN(prog->regstclass), str)
: 1);
U8 *sm = (U8 *) m;
U8 tmpbuf1[UTF8_MAXBYTES_CASE+1];
U8 tmpbuf2[UTF8_MAXBYTES_CASE+1];
+ const U32 uniflags = ckWARN(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY;
to_utf8_lower((U8*)m, tmpbuf1, &ulen1);
to_utf8_upper((U8*)m, tmpbuf2, &ulen2);
c1 = utf8n_to_uvchr(tmpbuf1, UTF8_MAXBYTES_CASE,
- 0, ckWARN(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY);
+ 0, uniflags);
c2 = utf8n_to_uvchr(tmpbuf2, UTF8_MAXBYTES_CASE,
- 0, ckWARN(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY);
+ 0, uniflags);
lnc = 0;
while (sm < ((U8 *) m + ln)) {
lnc++;
UV c, f;
U8 tmpbuf [UTF8_MAXBYTES+1];
STRLEN len, foldlen;
-
+ const U32 uniflags = ckWARN(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY;
if (c1 == c2) {
/* Upper and lower of 1st char are equal -
* probably not a "letter". */
while (s <= e) {
c = utf8n_to_uvchr((U8*)s, UTF8_MAXBYTES, &len,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
if ( c == c1
&& (ln == len ||
ibcmp_utf8(s, (char **)0, 0, do_utf8,
else {
while (s <= e) {
c = utf8n_to_uvchr((U8*)s, UTF8_MAXBYTES, &len,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
/* Handle some of the three Greek sigmas cases.
* Note that not all the possible combinations
GET_RE_DEBUG_FLAGS_DECL;
- (void)data; /* Currently unused */
+ PERL_UNUSED_ARG(data);
RX_MATCH_UTF8_set(prog,do_utf8);
PL_regcc = 0;
"Did not find anchored character...\n")
);
}
- /*SUPPRESS 560*/
else if (prog->anchored_substr != Nullsv
|| prog->anchored_utf8 != Nullsv
|| ((prog->float_substr != Nullsv || prog->float_utf8 != Nullsv)
SAVEDESTRUCTOR_X(restore_pos, 0);
}
if (!PL_reg_curpm) {
- Newz(22, PL_reg_curpm, 1, PMOP);
+ Newxz(PL_reg_curpm, 1, PMOP);
#ifdef USE_ITHREADS
{
SV* repointer = newSViv(0);
if(PL_reg_start_tmp)
Renew(PL_reg_start_tmp, PL_reg_start_tmpl, char*);
else
- New(22, PL_reg_start_tmp, PL_reg_start_tmpl, char*);
+ Newx(PL_reg_start_tmp, PL_reg_start_tmpl, char*);
}
/* XXXX What this code is doing here?!!! There should be no need
SV *re_debug_flags = NULL;
#endif
+ U32 uniflags = ckWARN(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY;
GET_RE_DEBUG_FLAGS;
case TRIEF:
case TRIEFL:
{
-
- const U32 uniflags = ckWARN( WARN_UTF8 ) ? 0 : UTF8_ALLOW_ANY;
U8 *uc = ( U8* )locinput;
U32 state = 1;
U16 charid = 0;
if ( base ) {
- if ( do_utf8 || UTF ) {
+ if ( do_utf8 ) {
if ( foldlen>0 ) {
uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags );
foldlen -= len;
from previous if blocks */
case TRIE:
{
- const U32 uniflags = ckWARN( WARN_UTF8 ) ? 0 : UTF8_ALLOW_ANY;
U8 *uc = (U8*)locinput;
U32 state = 1;
U16 charid = 0;
if ( base ) {
- if ( do_utf8 || UTF ) {
+ if ( do_utf8 ) {
uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags );
} else {
uvc = (U32)*uc;
sayNO;
if (NATIVE_TO_UNI(*(U8*)s) !=
utf8n_to_uvuni((U8*)l, UTF8_MAXBYTES, &ulen,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY))
+ uniflags))
sayNO;
l += ulen;
s ++;
sayNO;
if (NATIVE_TO_UNI(*((U8*)l)) !=
utf8n_to_uvuni((U8*)s, UTF8_MAXBYTES, &ulen,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY))
+ uniflags))
sayNO;
s += ulen;
l ++;
}
else {
PL_reg_poscache_size = size;
- Newz(29, PL_reg_poscache, size, char);
+ Newxz(PL_reg_poscache, size, char);
}
DEBUG_EXECUTE_r(
PerlIO_printf(Perl_debug_log,
to_utf8_upper((U8*)s, tmpbuf2, &ulen2);
c1 = utf8n_to_uvuni(tmpbuf1, UTF8_MAXBYTES, 0,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
c2 = utf8n_to_uvuni(tmpbuf2, UTF8_MAXBYTES, 0,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
}
else {
c2 = c1 = utf8n_to_uvchr(s, UTF8_MAXBYTES, 0,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
}
}
}
while (locinput <= e &&
utf8n_to_uvchr((U8*)locinput,
UTF8_MAXBYTES, &len,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY) != (UV)c1) {
+ uniflags) != (UV)c1) {
locinput += len;
count++;
}
while (locinput <= e) {
UV c = utf8n_to_uvchr((U8*)locinput,
UTF8_MAXBYTES, &len,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
if (c == (UV)c1 || c == (UV)c2)
break;
locinput += len;
if (do_utf8)
c = utf8n_to_uvchr((U8*)PL_reginput,
UTF8_MAXBYTES, 0,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
else
c = UCHARAT(PL_reginput);
/* If it could work, try it. */
if (do_utf8)
c = utf8n_to_uvchr((U8*)PL_reginput,
UTF8_MAXBYTES, 0,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
else
c = UCHARAT(PL_reginput);
}
if (do_utf8)
c = utf8n_to_uvchr((U8*)PL_reginput,
UTF8_MAXBYTES, 0,
- ckWARN(WARN_UTF8) ?
- 0 : UTF8_ALLOW_ANY);
+ uniflags);
else
c = UCHARAT(PL_reginput);
}
goto do_no;
}
/* Have more choice yet. Reuse the same uwb. */
- /*SUPPRESS 560*/
if ((n = (uwb->type == RE_UNWIND_BRANCH
? NEXT_OFF(next) : ARG(next))))
next += n;
const U32 n = ARG(node);
if (PL_regdata->what[n] == 's') {
- SV *rv = (SV*)PL_regdata->data[n];
- AV *av = (AV*)SvRV((SV*)rv);
+ SV * const rv = (SV*)PL_regdata->data[n];
+ AV * const av = (AV*)SvRV((SV*)rv);
SV **ary = AvARRAY(av);
SV **a, **b;
match = TRUE;
if (!match) {
AV *av;
- SV *sw = regclass_swash(n, TRUE, 0, (SV**)&av);
+ SV * const sw = regclass_swash(n, TRUE, 0, (SV**)&av);
if (sw) {
if (swash_fetch(sw, p, do_utf8))
else if (flags & ANYOF_FOLD) {
if (!match && lenp && av) {
I32 i;
-
for (i = 0; i <= av_len(av); i++) {
- SV* sv = *av_fetch(av, i, FALSE);
+ SV* const sv = *av_fetch(av, i, FALSE);
STRLEN len;
- const char *s = SvPV_const(sv, len);
+ const char * const s = SvPV_const(sv, len);
if (len <= plen && memEQ(s, (char*)p, len)) {
*lenp = len;
static void
restore_pos(pTHX_ void *arg)
{
- (void)arg; /* unused */
+ PERL_UNUSED_ARG(arg);
if (PL_reg_eval_set) {
if (PL_reg_oldsaved) {
PL_reg_re->subbeg = PL_reg_oldsaved;
STATIC void
S_to_utf8_substr(pTHX_ register regexp *prog)
{
- SV* sv;
if (prog->float_substr && !prog->float_utf8) {
+ SV* sv;
prog->float_utf8 = sv = newSVsv(prog->float_substr);
sv_utf8_upgrade(sv);
if (SvTAIL(prog->float_substr))
prog->check_utf8 = sv;
}
if (prog->anchored_substr && !prog->anchored_utf8) {
+ SV* sv;
prog->anchored_utf8 = sv = newSVsv(prog->anchored_substr);
sv_utf8_upgrade(sv);
if (SvTAIL(prog->anchored_substr))
STATIC void
S_to_byte_substr(pTHX_ register regexp *prog)
{
- SV* sv;
if (prog->float_utf8 && !prog->float_substr) {
+ SV* sv;
prog->float_substr = sv = newSVsv(prog->float_utf8);
if (sv_utf8_downgrade(sv, TRUE)) {
if (SvTAIL(prog->float_utf8))
prog->check_substr = sv;
}
if (prog->anchored_utf8 && !prog->anchored_substr) {
+ SV* sv;
prog->anchored_substr = sv = newSVsv(prog->anchored_utf8);
if (sv_utf8_downgrade(sv, TRUE)) {
if (SvTAIL(prog->anchored_utf8))