X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=regexec.c;h=e052912e1061528a163a34c60507b873b25cc296;hb=4a9ae47ac2dbde43455079cf404946a27c7b4906;hp=13675cc9e3c23bfda5eca3a3aaccfafa77172d12;hpb=19b4f81ab32719bedc893a7532029fff0bf316c9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/regexec.c b/regexec.c index 13675cc..e052912 100644 --- a/regexec.c +++ b/regexec.c @@ -318,11 +318,14 @@ regexec_flags(register regexp *prog, char *stringarg, register char *strend, DEBUG_r( PerlIO_printf(Perl_debug_log, - "Matching `%.60s%s' against `%.*s%s'\n", - prog->precomp, + "%sMatching%s `%s%.60s%s%s' against `%s%.*s%s%s'\n", + PL_colors[4],PL_colors[5],PL_colors[0], + prog->precomp, + PL_colors[1], (strlen(prog->precomp) > 60 ? "..." : ""), + PL_colors[0], (strend - startpos > 60 ? 60 : strend - startpos), - startpos, + startpos, PL_colors[1], (strend - startpos > 60 ? "..." : "")) ); @@ -794,15 +797,21 @@ regmatch(regnode *prog) int l = (PL_regeol - locinput > taill ? taill : PL_regeol - locinput); int pref_len = (locinput - PL_bostr > (5 + taill) - l ? (5 + taill) - l : locinput - PL_bostr); + int pref0_len = pref_len - (locinput - PL_reginput); if (l + pref_len < (5 + taill) && l < PL_regeol - locinput) l = ( PL_regeol - locinput > (5 + taill) - pref_len ? (5 + taill) - pref_len : PL_regeol - locinput); + if (pref0_len < 0) + pref0_len = 0; regprop(prop, scan); PerlIO_printf(Perl_debug_log, - "%4i <%s%.*s%s%s%s%.*s%s>%*s|%3d:%*s%s\n", + "%4i <%s%.*s%s%s%.*s%s%s%s%.*s%s>%*s|%3d:%*s%s\n", locinput - PL_bostr, - PL_colors[2], pref_len, locinput - pref_len, PL_colors[3], + PL_colors[4], pref0_len, + locinput - pref_len, PL_colors[5], + PL_colors[2], pref_len - pref0_len, + locinput - pref_len + pref0_len, PL_colors[3], (docolor ? "" : "> <"), PL_colors[0], l, locinput, PL_colors[1], 15 - l - pref_len + 1, @@ -1246,7 +1255,9 @@ regmatch(regnode *prog) } if (PL_dowarn && n >= REG_INFTY && !(PL_reg_flags & RF_warned)) { PL_reg_flags |= RF_warned; - warn("count exceeded %d", REG_INFTY - 1); + warn("%s limit (%d) exceeded", + "Complex regular subexpression recursion", + REG_INFTY - 1); } /* Failed deeper matches of scan, so see if this one works. */