ruby-changes:2546
From: ko1@a...
Date: 28 Nov 2007 09:52:13 +0900
Subject: [ruby-changes:2546] nobu - Ruby:r14037 (ruby_1_8): * bignum.c (rb_big2str0): do not clobber space for sign.
nobu 2007-11-28 09:51:44 +0900 (Wed, 28 Nov 2007)
New Revision: 14037
Modified files:
branches/ruby_1_8/ChangeLog
branches/ruby_1_8/bignum.c
branches/ruby_1_8/sprintf.c
branches/ruby_1_8/version.h
Log:
* bignum.c (rb_big2str0): do not clobber space for sign.
* sprintf.c (remove_sign_bits): extends sign bit first.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=14037&r2=14036
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/sprintf.c?r1=14037&r2=14036
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/bignum.c?r1=14037&r2=14036
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/version.h?r1=14037&r2=14036
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog (revision 14036)
+++ ruby_1_8/ChangeLog (revision 14037)
@@ -1,3 +1,9 @@
+Wed Nov 28 09:51:42 2007 Nobuyoshi Nakada <nobu@r...>
+
+ * bignum.c (rb_big2str0): do not clobber space for sign.
+
+ * sprintf.c (remove_sign_bits): extends sign bit first.
+
Wed Nov 21 01:04:12 2007 Yukihiro Matsumoto <matz@r...>
* object.c (nil_plus): remove unused function. [ruby-core:13737]
Index: ruby_1_8/version.h
===================================================================
--- ruby_1_8/version.h (revision 14036)
+++ ruby_1_8/version.h (revision 14037)
@@ -1,7 +1,7 @@
#define RUBY_VERSION "1.8.6"
-#define RUBY_RELEASE_DATE "2007-11-21"
+#define RUBY_RELEASE_DATE "2007-11-28"
#define RUBY_VERSION_CODE 186
-#define RUBY_RELEASE_CODE 20071121
+#define RUBY_RELEASE_CODE 20071128
#define RUBY_PATCHLEVEL 5000
#define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 6
#define RUBY_RELEASE_YEAR 2007
#define RUBY_RELEASE_MONTH 11
-#define RUBY_RELEASE_DAY 21
+#define RUBY_RELEASE_DAY 28
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];
Index: ruby_1_8/bignum.c
===================================================================
--- ruby_1_8/bignum.c (revision 14036)
+++ ruby_1_8/bignum.c (revision 14037)
@@ -709,7 +709,7 @@
while (k--) {
s[--j] = ruby_digitmap[num % base];
num /= base;
- if (!trim && j < 1) break;
+ if (!trim && j <= 1) break;
if (trim && i == 0 && num == 0) break;
}
}
Index: ruby_1_8/sprintf.c
===================================================================
--- ruby_1_8/sprintf.c (revision 14036)
+++ ruby_1_8/sprintf.c (revision 14037)
@@ -18,6 +18,8 @@
#include <math.h>
#define BIT_DIGITS(N) (((N)*146)/485 + 1) /* log2(10) =~ 146/485 */
+#define BITSPERDIG (SIZEOF_BDIGITS*CHAR_BIT)
+#define EXTENDSIGN(n, l) (((~0 << (n)) >> (((n)*(l)) % BITSPERDIG)) & ~(~0 << (n)))
static void fmt_setup _((char*,int,int,int,int));
@@ -36,7 +38,7 @@
}
}
else if (base == 8) {
- if (*t == '3') t++;
+ *t |= EXTENDSIGN(3, strlen(t));
while (*t == '7') {
t++;
}
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml