diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-19 05:36:43 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-19 05:36:43 +0000 |
| commit | de8009a9d1ca5c1bee9af8f4a904c75b32049bb9 (patch) | |
| tree | 134e5f87be2fa1e6b876c268f1d04801f703c86d | |
| parent | 1a328da16a7eb5f0e5b5841df6b880c99893b48e (diff) | |
| download | ruby-de8009a9d1ca5c1bee9af8f4a904c75b32049bb9.tar.gz ruby-de8009a9d1ca5c1bee9af8f4a904c75b32049bb9.tar.xz ruby-de8009a9d1ca5c1bee9af8f4a904c75b32049bb9.zip | |
* bignum.c (rb_cstr_to_inum): treat successive underscores as
nondigit. [ruby-dev:34089]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | bignum.c | 7 | ||||
| -rw-r--r-- | test/ruby/test_string.rb | 2 |
3 files changed, 10 insertions, 4 deletions
@@ -1,3 +1,8 @@ +Wed Mar 19 14:36:40 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * bignum.c (rb_cstr_to_inum): treat successive underscores as + nondigit. [ruby-dev:34089] + Wed Mar 19 14:08:47 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> * encoding.c (enc_check_encoding): should not load autoloaded encoding @@ -532,10 +532,11 @@ rb_cstr_to_inum(const char *str, int base, int badcheck) for (i=len;i--;) zds[i]=0; while ((c = *str++) != 0) { if (c == '_') { - if (badcheck) { - if (nondigit) goto bad; - nondigit = c; + if (nondigit) { + if (badcheck) goto bad; + break; } + nondigit = c; continue; } else if ((c = conv_digit(c)) < 0) { diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index ed4b667a4..c71be7d09 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -1213,7 +1213,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(12, "1__2".to_i(10)) + assert_equal(1, "1__2".to_i(10)) assert_equal(1, "1_z".to_i(10)) end |
