[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]