diff options
| author | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-26 08:44:57 +0000 |
|---|---|---|
| committer | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-26 08:44:57 +0000 |
| commit | 1578fc640ddf7577d34706449cbaa4161943ae8b (patch) | |
| tree | 2c31f12bc46f04362051c1415ee1f565e3ce17eb | |
| parent | e08bd9d9b82d7aafbc8b3df6454172b6110decf3 (diff) | |
| download | ruby-1578fc640ddf7577d34706449cbaa4161943ae8b.tar.gz ruby-1578fc640ddf7577d34706449cbaa4161943ae8b.tar.xz ruby-1578fc640ddf7577d34706449cbaa4161943ae8b.zip | |
* ext/strscan/strscan.c (strscan_do_scan): StringScanner.new("").scan(//) should return "". [ruby-Bugs:4361]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | ext/strscan/strscan.c | 7 | ||||
| -rw-r--r-- | test/strscan/test_stringscanner.rb | 10 |
3 files changed, 15 insertions, 7 deletions
@@ -1,3 +1,8 @@ +Wed Jul 26 17:43:20 2006 Minero Aoki <aamine@loveruby.net> + + * ext/strscan/strscan.c (strscan_do_scan): + StringScanner.new("").scan(//) should return "". [ruby-Bugs:4361] + Wed Jul 26 17:28:16 2006 Nobuyoshi Nakada <nobu@ruby-lang.org> * sprintf.c (rb_str_format): prepend ".." to %u for negative bignum, diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c index 1dd61e596..dcb70a774 100644 --- a/ext/strscan/strscan.c +++ b/ext/strscan/strscan.c @@ -391,9 +391,6 @@ strscan_set_pos(VALUE self, VALUE v) return INT2NUM(i); } -/* I should implement this function? */ -#define strscan_prepare_re(re) /* none */ - static VALUE strscan_do_scan(VALUE self, VALUE regex, int succptr, int getstr, int headonly) { @@ -404,10 +401,6 @@ strscan_do_scan(VALUE self, VALUE regex, int succptr, int getstr, int headonly) GET_SCANNER(self, p); CLEAR_MATCH_STATUS(p); - if (EOS_P(p)) { - return Qnil; - } - strscan_prepare_re(regex); if (headonly) { ret = onig_match(RREGEXP(regex)->ptr, (UChar* )CURPTR(p), (UChar* )(CURPTR(p) + S_RESTLEN(p)), diff --git a/test/strscan/test_stringscanner.rb b/test/strscan/test_stringscanner.rb index deb05d29a..5b0fd53c7 100644 --- a/test/strscan/test_stringscanner.rb +++ b/test/strscan/test_stringscanner.rb @@ -242,6 +242,11 @@ class TestStringScanner < Test::Unit::TestCase s.string.replace '' # unspecified: assert_equal 2, s.pos assert_equal nil, s.scan(/test/) + + # [ruby-bugs:4361] + s = StringScanner.new("") + assert_equal "", s.scan(//) + assert_equal "", s.scan(//) end def test_skip @@ -259,6 +264,11 @@ class TestStringScanner < Test::Unit::TestCase s.scan(/te/) s.string.replace '' assert_equal nil, s.skip(/./) + + # [ruby-bugs:4361] + s = StringScanner.new("") + assert_equal 0, s.skip(//) + assert_equal 0, s.skip(//) end def test_getch |
