diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | bignum.c | 3 | ||||
-rw-r--r-- | test/ruby/test_string.rb | 2 |
3 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Sun Nov 18 20:46:08 2012 Tadayoshi Funaba <tadf@dotrb.org> + + * bignum.c (rb_cstr_to_inum): should accept underscores of + sequence of two or more when unchecked mode. + Sun Nov 18 16:33:00 2012 Naohisa Goto <ngotogenome@gmail.com> * configure.in, Makefile.in, common.mk: support DTrace on Solaris 10, @@ -733,7 +733,8 @@ rb_cstr_to_inum(const char *str, int base, int badcheck) if (badcheck) goto bad; break; } - nondigit = (char) c; + if (badcheck) + nondigit = (char) c; continue; } else if ((c = conv_digit(c)) < 0) { diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index 2beaef3504..9f63847da3 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -1513,7 +1513,7 @@ class TestString < Test::Unit::TestCase assert_equal(12, "1_2".to_i(10)) assert_equal(0x40000000, "1073741824".to_i(10)) assert_equal(0x4000000000000000, "4611686018427387904".to_i(10)) - assert_equal(1, "1__2".to_i(10)) + assert_equal(12, "1__2".to_i(10)) assert_equal(1, "1_z".to_i(10)) bug6192 = '[ruby-core:43566]' |