ruby-changes:3854
From: ko1@a...
Date: Wed, 30 Jan 2008 22:08:01 +0900 (JST)
Subject: [ruby-changes:3854] tadf - Ruby:r15343 (ruby_1_8): * bignum.c (rb_cstr_to_inum): '0_2' is a valid representation.
tadf 2008-01-30 22:07:45 +0900 (Wed, 30 Jan 2008) New Revision: 15343 Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/bignum.c Log: * bignum.c (rb_cstr_to_inum): '0_2' is a valid representation. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=15343&r2=15342&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/bignum.c?r1=15343&r2=15342&diff_format=u Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 15342) +++ ruby_1_8/ChangeLog (revision 15343) @@ -1,3 +1,7 @@ +Wed Jan 30 22:06:54 2008 Tadayoshi Funaba <tadf@d...> + + * bignum.c (rb_cstr_to_inum): '0_2' is a valid representation. + Tue Jan 29 22:40:12 2008 Yusuke Endoh <mame@t...> * range.c (step_i): rb_funcall receives VALUE as an argument. Index: ruby_1_8/bignum.c =================================================================== --- ruby_1_8/bignum.c (revision 15342) +++ ruby_1_8/bignum.c (revision 15343) @@ -416,7 +416,7 @@ len = 2; break; case 8: - if (str[0] == '0' && (str[1] == 'o'||str[1] == 'O'||str[1] == '_')) { + if (str[0] == '0' && (str[1] == 'o'||str[1] == 'O')) { str += 2; } case 4: case 5: case 6: case 7: @@ -448,7 +448,14 @@ break; } if (*str == '0') { /* squeeze preceeding 0s */ - while (*++str == '0'); + int us = 0; + while ((c = *++str) == '0' || c == '_') { + if (c == '_') { + if (++us >= 2) + break; + } else + us = 0; + } if (!(c = *str) || ISSPACE(c)) --str; } c = *str; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/