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