mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
extended regexp bug fix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
15281f2e23
commit
ae08a031a6
3 changed files with 10 additions and 6 deletions
8
regex.c
8
regex.c
|
@ -1848,7 +1848,7 @@ re_compile_pattern(pattern, size, bufp)
|
|||
|
||||
c1 = 0;
|
||||
GET_UNSIGNED_NUMBER(c1);
|
||||
if (p < pend) PATUNFETCH;
|
||||
if (!ISDIGIT(c)) PATUNFETCH;
|
||||
|
||||
if (c1 >= regnum) {
|
||||
/* need to get octal */
|
||||
|
@ -2892,9 +2892,11 @@ re_match(bufp, string_arg, size, pos, regs)
|
|||
/* If not end of string, try backtracking. Otherwise done. */
|
||||
if (d != dend)
|
||||
{
|
||||
while (stackp != stackb && (int)stackp[-1] == 1)
|
||||
POP_FAILURE_POINT();
|
||||
if (stackp != stackb)
|
||||
{
|
||||
/* More failure points to try. */
|
||||
/* More failure points to try. */
|
||||
|
||||
/* If exceeds best match so far, save it. */
|
||||
if (! best_regs_set || (d > best_regend[0]))
|
||||
|
@ -3419,8 +3421,6 @@ re_match(bufp, string_arg, size, pos, regs)
|
|||
SET_REGS_MATCHED;
|
||||
break;
|
||||
}
|
||||
if (stackp != stackb && (int)stackp[-1] == 1)
|
||||
POP_FAILURE_POINT();
|
||||
continue; /* Successfully executed one pattern command; keep going. */
|
||||
|
||||
/* Jump here if any matching operation fails. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue