From 198c0920045418b8c530b35dfab228cfeee0a4d1 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 19 Dec 2007 01:52:31 +0000 Subject: * bignum.c (rb_cstr_to_inum): an underscore succeeding after octal prefix is allowed. [ruby-core:14139] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ bignum.c | 2 +- test/ruby/test_integer.rb | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1c82985e4f..bb72f3b061 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Dec 19 10:52:29 2007 Nobuyoshi Nakada + + * bignum.c (rb_cstr_to_inum): an underscore succeeding after octal + prefix is allowed. [ruby-core:14139] + Wed Dec 19 00:09:19 2007 Yukihiro Matsumoto * bignum.c (rb_cstr_to_inum): wrong radix check. a patch from diff --git a/bignum.c b/bignum.c index c840fe06f7..3f2db057af 100644 --- a/bignum.c +++ b/bignum.c @@ -439,7 +439,7 @@ rb_cstr_to_inum(const char *str, int base, int badcheck) len = 2; break; case 8: - if (str[0] == '0' && (str[1] == 'o'||str[1] == 'O')) { + if (str[0] == '0' && (str[1] == 'o'||str[1] == 'O'||str[1] == '_')) { str += 2; } case 4: case 5: case 6: case 7: diff --git a/test/ruby/test_integer.rb b/test/ruby/test_integer.rb index 81f8c65797..db62a08cc4 100644 --- a/test/ruby/test_integer.rb +++ b/test/ruby/test_integer.rb @@ -670,5 +670,8 @@ class TestInteger < Test::Unit::TestCase assert_nothing_raised(ArgumentError, "[ruby-core:13873]") { assert_equal(0, Integer("0 ")) } + assert_nothing_raised(ArgumentError, "[ruby-core:14139]") { + assert_equal(0377, Integer("0_3_7_7")) + } end end -- cgit v1.2.3