summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--marshal.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 82587bc36d..009fa06023 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri May 14 07:27:07 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * marshal.c (w_float): strip ".0" from end for rubyspec.
+
Fri May 14 01:17:10 2010 Yusuke Endoh <mame@tsg.ne.jp>
* vm_core.c (rb_thread_struct): add a field for sigaltstack.
diff --git a/marshal.c b/marshal.c
index 857dd7361c..edcb9556cb 100644
--- a/marshal.c
+++ b/marshal.c
@@ -369,7 +369,10 @@ w_float(double d, struct dump_arg *arg)
else w_cstr("0", arg);
}
else {
- w_bytes(buf, ruby_dbl2cstr(d, buf, (int)sizeof(buf)), arg);
+ int len = ruby_dbl2cstr(d, buf, (int)sizeof(buf));
+ if (len > 2 && buf[len - 1] == '0' && buf[len - 2] == '.')
+ len -= 2;
+ w_bytes(buf, len, arg);
}
}