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/