summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorksaito <ksaito@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-28 03:07:48 +0000
committerksaito <ksaito@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-28 03:07:48 +0000
commit5fb312bd18a09ac50e8c7d707cb87893609ce9fc (patch)
treed2d63b456d9970d6419882c101ec1d9708d698c4
parent7eac88ecd5ee9ecf63ff7a3192c3d73fd5c0063f (diff)
* regexec.c, test/ruby/test_regexp.rb: fixed segmentation falut ([ruby-dev:24887]).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--regexec.c2
-rw-r--r--test/ruby/test_regexp.rb4
3 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ba5acbc45f..fbe5cd11af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Nov 28 12:07:04 2004 Kazuo Saito <ksaito@uranus.dti.ne.jp>
+
+ * regexec.c, test/ruby/test_regexp.rb: fixed segmentation falut
+ ([ruby-dev:24887]).
+
Sun Nov 28 12:05:48 2004 Kazuo Saito <ksaito@uranus.dti.ne.jp>
* regcomp.c, regint.h: fixed PLATFORM_UNALIGNED_WORD_ACCESS
diff --git a/regexec.c b/regexec.c
index 594c173a83..07af4fe104 100644
--- a/regexec.c
+++ b/regexec.c
@@ -3199,7 +3199,7 @@ onig_search(regex_t* reg, UChar* str, UChar* end,
}
}
else if (reg->anchor & ANCHOR_SEMI_END_BUF) {
- UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, start, end, 1);
+ UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, str, end, 1);
if (ONIGENC_IS_MBC_NEWLINE(reg->enc, pre_end, end)) {
semi_end = pre_end;
diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb
index 217177375d..889fbb4b2d 100644
--- a/test/ruby/test_regexp.rb
+++ b/test/ruby/test_regexp.rb
@@ -8,4 +8,8 @@ class TestRegexp < Test::Unit::TestCase
def test_ruby_talk_116455
assert_match(/^(\w{2,}).* ([A-Za-z\xa2\xc0-\xff]{2,}?)$/, "Hallo Welt")
end
+
+ def test_ruby_dev_24887
+ assert_equal("a".gsub(/a\Z/, ""), "")
+ end
end