diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-07 06:14:46 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-07 06:14:46 +0000 |
commit | 9f9388e57ea204d15f9ae073f043dc646739d0e7 (patch) | |
tree | e43aa9471d4b50e845ac2521648e11e2b851a446 /regex.c | |
parent | 3a2319f3e0eebe9e2024a52c095ae7201c7520e7 (diff) |
* regexp.c (re_compile_pattern): allow zero times match for
non-greedy range repeatation. [ruby-core:30613]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@28192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'regex.c')
-rw-r--r-- | regex.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -2152,6 +2152,12 @@ re_compile_pattern(pattern, size, bufp) more at the end of the loop. */ unsigned nbytes = upper_bound == 1 ? 10 : 20; + if (lower_bound == 0 && greedy == 0) { + GET_BUFFER_SPACE(3); + insert_jump(try_next, laststart, b + 3, b); + b += 3; + } + GET_BUFFER_SPACE(nbytes); /* Initialize lower bound of the `succeed_n', even though it will be set during matching by its |