diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-11-22 16:06:38 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-11-22 16:06:38 +0000 |
commit | 18c0fc890c4847eb19e1997b88c4f8e043321f9b (patch) | |
tree | da50464c4b00789f4f1f7239a9aeaaee38517fcd | |
parent | 94e6c0c233bd386e09e5700d947d4f5e4fca3914 (diff) | |
download | ruby-18c0fc890c4847eb19e1997b88c4f8e043321f9b.tar.gz |
* vsnprintf.c (BSD_vfprintf): don't output floating point
when the precision is 0. [ruby-dev:42615]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | test/ruby/test_sprintf.rb | 2 | ||||
-rw-r--r-- | vsnprintf.c | 2 |
3 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Tue Nov 23 01:05:27 2010 NARUSE, Yui <naruse@ruby-lang.org> + + * vsnprintf.c (BSD_vfprintf): don't output floating point + when the precision is 0. [ruby-dev:42615] + Mon Nov 22 21:30:57 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * string.c (rb_str_inspect): fix for ascii-compatible external diff --git a/test/ruby/test_sprintf.rb b/test/ruby/test_sprintf.rb index ce5b6cae33..218d2188b7 100644 --- a/test/ruby/test_sprintf.rb +++ b/test/ruby/test_sprintf.rb @@ -190,7 +190,7 @@ class TestSprintf < Test::Unit::TestCase sprintf("%20.0f", 36893488147419107329.0)) assert_equal(" Inf", sprintf("% 0e", 1.0/0.0), "moved from btest/knownbug") assert_equal(" -0.", sprintf("%#10.0f", -0.5), "[ruby-dev:42552]") - assert_equal("0x1.p+2", sprintf('%.0a', Float('0x1.fp+1')), "[ruby-dev:42551]") + assert_equal("0x1p+2", sprintf('%.0a', Float('0x1.fp+1')), "[ruby-dev:42551]") assert_equal("-0x1.0p+2", sprintf('%.1a', Float('-0x1.ffp+1')), "[ruby-dev:42551]") end diff --git a/vsnprintf.c b/vsnprintf.c index 5f564c2abf..6778b90d8f 100644 --- a/vsnprintf.c +++ b/vsnprintf.c @@ -790,7 +790,7 @@ reswitch: switch (ch) { #ifdef FLOATING_POINT case 'a': case 'A': - if (prec >= 0) { + if (prec > 0) { flags |= ALT; prec++; } |