#define REG_COMP_C
#include "regcomp.h"
-#ifdef USE_THREADS
+#ifdef op
#undef op
-#endif /* USE_THREADS */
+#endif /* op */
static regnode regdummy;
static char * regparse; /* Input-scan pointer. */
data->last_start_max = is_inf
? I32_MAX : data->pos_min + data->pos_delta;
}
- sv_catpvn(data->last_found, OPERAND(scan)+1, l);
+ sv_catpvn(data->last_found, (char *)(OPERAND(scan)+1), l);
data->last_end = data->pos_min + l;
data->pos_min += l; /* As in the first entry. */
data->flags &= ~SF_BEFORE_EOL;
if (OP(scan) != BRANCH) { /* Only one top-level choice. */
scan_data_t data;
I32 fake;
+ STRLEN longest_float_length, longest_fixed_length;
StructCopy(&zero_scan_data, &data, scan_data_t);
first = scan;
scan_commit(&data);
SvREFCNT_dec(data.last_found);
- if (SvCUR(data.longest_float)
+ longest_float_length = SvCUR(data.longest_float);
+ if (longest_float_length
|| (data.flags & SF_FL_BEFORE_EOL
&& (!(data.flags & SF_FL_BEFORE_MEOL)
|| (regflags & PMf_MULTILINE)))) {
remove:
r->float_substr = Nullsv;
SvREFCNT_dec(data.longest_float);
+ longest_float_length = 0;
}
- if (SvCUR(data.longest_fixed)
+ longest_fixed_length = SvCUR(data.longest_fixed);
+ if (longest_fixed_length
|| (data.flags & SF_FIX_BEFORE_EOL /* Cannot have SEOL and MULTI */
&& (!(data.flags & SF_FIX_BEFORE_MEOL)
|| (regflags & PMf_MULTILINE)))) {
} else {
r->anchored_substr = Nullsv;
SvREFCNT_dec(data.longest_fixed);
+ longest_fixed_length = 0;
}
/* A temporary algorithm prefers floated substr to fixed one to dig more info. */
- if (SvCUR(data.longest_fixed) > SvCUR(data.longest_float)) {
+ if (longest_fixed_length > longest_float_length) {
r->check_substr = r->anchored_substr;
r->check_offset_min = r->check_offset_max = r->anchored_offset;
if (r->reganch & ROPT_ANCH_SINGLE)
ret = reg_node((regflags & PMf_FOLD)
? ((regflags & PMf_LOCALE) ? EXACTFL : EXACTF)
: EXACT);
- s = OPERAND(ret);
+ s = (char *) OPERAND(ret);
regc(0, s++); /* save spot for len */
for (len = 0, p = regparse - 1;
len < 127 && p < regxend;
register I32 def;
I32 numlen;
- s = opnd = OPERAND(regcode);
+ s = opnd = (char *) OPERAND(regcode);
ret = reg_node(ANYOF);
for (Class = 0; Class < 33; Class++)
regc(0, s++);
croak("%s", buf);
}
+
+