if (PL_screamfirst[BmRARE(check)] >= 0
|| ( BmRARE(check) == '\n'
- && (BmPREVIOUS(check) == SvCUR(check) - 1)
+ && (BmPREVIOUS(check) == (U8)SvCUR(check) - 1)
&& SvTAIL(check) ))
s = screaminstr(sv, check,
srch_start_shift + (s - strbeg), srch_end_shift, pp, 0);
# define BmUSEFUL(sv) ((XPVBM*) SvANY(sv))->xiv_u.xivu_i32
# define BmPREVIOUS(sv) \
- (*(U8*)(SvEND(sv) + PERL_FBM_TABLE_OFFSET \
+ ((*(U8*)(SvEND(sv) + PERL_FBM_TABLE_OFFSET \
+ PERL_FBM_PREVIOUS_H_OFFSET_FROM_TABLE) << 8) \
- | (*(U8*)(SvEND(sv) + PERL_FBM_TABLE_OFFSET \
- + PERL_FBM_PREVIOUS_L_OFFSET_FROM_TABLE)) \
+ | (*(U8*)(SvEND(sv) + PERL_FBM_TABLE_OFFSET \
+ + PERL_FBM_PREVIOUS_L_OFFSET_FROM_TABLE))) \
#endif
#define BmPREVIOUS_set(sv, val) \
: (((pos = *old_posp), pos += PL_screamnext[pos]) == 0)) {
cant_find:
if ( BmRARE(littlestr) == '\n'
- && BmPREVIOUS(littlestr) == SvCUR(littlestr) - 1) {
+ && BmPREVIOUS(littlestr) == (U8)SvCUR(littlestr) - 1) {
little = (const unsigned char *)(SvPVX_const(littlestr));
littleend = little + SvCUR(littlestr);
first = *little++;