ruby-changes:3847
From: ko1@a...
Date: Wed, 30 Jan 2008 12:07:59 +0900 (JST)
Subject: [ruby-changes:3847] tadf - Ruby:r15336 (trunk): * bignum.c (rb_cstr_to_inum): '0_2' is a valid representatin.
tadf 2008-01-30 12:07:37 +0900 (Wed, 30 Jan 2008) New Revision: 15336 Modified files: trunk/ChangeLog trunk/bignum.c Log: * bignum.c (rb_cstr_to_inum): '0_2' is a valid representatin. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15336&r2=15335&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bignum.c?r1=15336&r2=15335&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 15335) +++ ChangeLog (revision 15336) @@ -1,3 +1,7 @@ +Wed Jan 30 12:06:43 2008 Tadayoshi Funaba <tadf@d...> + + * bignum.c (rb_cstr_to_inum): '0_2' is a valid representatin. + Wed Jan 30 11:57:50 2008 NARUSE, Yui <naruse@r...> * bootstraptest/runner.rb: fix -I../../hoge case. Index: bignum.c =================================================================== --- bignum.c (revision 15335) +++ bignum.c (revision 15336) @@ -438,7 +438,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: @@ -470,8 +470,16 @@ break; } if (*str == '0') { /* squeeze preceding 0s */ - while (*++str == '0'); - if (!(c = *str) || ISSPACE(c)) --str; + int nn = 0; + while ((c = *++str) == '0' || c == '_') { + if (c == '_') { + nn++; + if (nn >= 2) + break; + } else + nn = 0; + } + if (!(c = *str) || ISSPACE(c)) --str; } c = *str; c = conv_digit(c); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/