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

ruby-changes:17708

From: naruse <ko1@a...>
Date: Mon, 8 Nov 2010 15:44:46 +0900 (JST)
Subject: [ruby-changes:17708] Ruby:r29719 (trunk): * vsnprintf.c (BSD_vfprintf): fix precision specifier doesn't

naruse	2010-11-08 15:44:39 +0900 (Mon, 08 Nov 2010)

  New Revision: 29719

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29719

  Log:
    * vsnprintf.c (BSD_vfprintf): fix precision specifier doesn't
      work well on %f. [ruby-dev:42552]

  Modified files:
    trunk/ChangeLog
    trunk/test/ruby/test_sprintf.rb
    trunk/vsnprintf.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 29718)
+++ ChangeLog	(revision 29719)
@@ -1,3 +1,8 @@
+Mon Nov  8 15:40:56 2010  NARUSE, Yui  <naruse@r...>
+
+	* vsnprintf.c (BSD_vfprintf): fix precision specifier doesn't
+	  work well on %f. [ruby-dev:42552]
+
 Mon Nov  8 14:41:40 2010  NAKAMURA Usaku  <usa@r...>
 
 	* win32/win32.c (get_wsa_extension_function): typos.
Index: vsnprintf.c
===================================================================
--- vsnprintf.c	(revision 29718)
+++ vsnprintf.c	(revision 29719)
@@ -855,6 +855,8 @@
 						size += prec + 1;
 				} else if (!prec) { /* "0" */
 					size = 1;
+					if (flags & ALT)
+						size += 1;
 				} else	/* "0.X" */
 					size = prec + 2;
 			} else if (expt >= ndig) {	/* fixed g fmt */
Index: test/ruby/test_sprintf.rb
===================================================================
--- test/ruby/test_sprintf.rb	(revision 29718)
+++ test/ruby/test_sprintf.rb	(revision 29719)
@@ -189,6 +189,7 @@
     assert_equal("36893488147419111424",
                  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]")
   end
 
   def test_float_hex

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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