U8 * const send = s+len;
PERL_ARGS_ASSERT_DO_TRANS_SIMPLE;
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: entering do_trans_simple:"
+ " input sv:\n",
+ __FILE__, __LINE__));
+ DEBUG_y(sv_dump(sv));
/* First, take care of non-UTF-8 input strings, because they're easy */
if (!SvUTF8(sv)) {
SvUTF8_on(sv);
SvSETMAGIC(sv);
}
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: returning %zu\n",
+ __FILE__, __LINE__, matches));
+ DEBUG_y(sv_dump(sv));
return matches;
}
PERL_ARGS_ASSERT_DO_TRANS_COUNT;
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: entering do_trans_count:"
+ " input sv:\n",
+ __FILE__, __LINE__));
+ DEBUG_y(sv_dump(sv));
+
if (!SvUTF8(sv)) {
while (s < send) {
if (tbl->map[*s++] >= 0)
}
}
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: count returning %zu\n",
+ __FILE__, __LINE__, matches));
return matches;
}
PERL_ARGS_ASSERT_DO_TRANS_COMPLEX;
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: entering do_trans_complex:"
+ " input sv:\n",
+ __FILE__, __LINE__));
+ DEBUG_y(sv_dump(sv));
+
if (!SvUTF8(sv)) {
U8 *d = s;
U8 * const dstart = d;
SvUTF8_on(sv);
}
SvSETMAGIC(sv);
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: returning %zu\n",
+ __FILE__, __LINE__, matches));
+ DEBUG_y(sv_dump(sv));
return matches;
}
PERL_ARGS_ASSERT_DO_TRANS_COUNT_INVMAP;
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d:"
+ "entering do_trans_count_invmap:"
+ " input sv:\n",
+ __FILE__, __LINE__));
+ DEBUG_y(sv_dump(sv));
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "mapping:\n"));
+ DEBUG_y(invmap_dump(from_invlist, (UV *) SvPVX(to_invmap_sv)));
+
s = (U8*)SvPV_nomg(sv, len);
send = s + len;
s += s_len;
}
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: returning %zu\n",
+ __FILE__, __LINE__, matches));
return matches;
}
-
/* Helper function for do_trans().
* Handles cases where an inversion map implementation is to be used and the
* search and replacement charlists are either not identical or flags are
}
s = (U8*)SvPV_nomg(sv, len);
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: entering do_trans_invmap:"
+ " input sv:\n",
+ __FILE__, __LINE__));
+ DEBUG_y(sv_dump(sv));
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "mapping:\n"));
+ DEBUG_y(invmap_dump(from_invlist, map));
+
send = s + len;
s0 = s;
}
SvSETMAGIC(sv);
+ DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d: returning %zu\n",
+ __FILE__, __LINE__, matches));
+ DEBUG_y(sv_dump(sv));
return matches;
}
-
/* Execute a tr//. sv is the value to be translated, while PL_op
* should be an OP_TRANS or OP_TRANSR op, whose op_pv field contains a
* translation table or whose op_sv field contains an inversion map.