summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-18 11:55:34 +0000
committertadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-18 11:55:34 +0000
commit2630ad09bd6f959b0379adfba84a6c7b4e4958ff (patch)
treec8455070a6042afe8b6d791391bfc1911747133b
parent1f225be2e51f0ff7376846d5631fd6287eb03d14 (diff)
* bignum.c (rb_cstr_to_inum): should accept underscores of
sequence of two or more when unchecked mode. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--bignum.c3
-rw-r--r--test/ruby/test_string.rb2
3 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 0ae387bed6..cfc2d47647 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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,
diff --git a/bignum.c b/bignum.c
index 97be53faf1..b6e551b837 100644
--- a/bignum.c
+++ b/bignum.c
@@ -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]'