Hey all,
This patch addresses the *printf() bug when dealing with exponents (%e).
See http://bugs.php.net/bug.php?id=46145 for more details.
The patch is large because there were a lot of unit tests written to expect
the wrong behavior, so I had to update them. I realize that there is the
possibility that we might decide to label this as a "won't fix", but I
figured I might as well put forth the effort :)
Ilia
### Eclipse Workspace Patch 1.0
#P php53
Index: ext/standard/tests/strings/vsprintf_basic6.phpt
===================================================================
RCS file: /repository/php-src/ext/standard/tests/strings/vsprintf_basic6.phpt,v
retrieving revision 1.1.4.2
diff -u -r1.1.4.2 vsprintf_basic6.phpt
--- ext/standard/tests/strings/vsprintf_basic6.phpt 5 Oct 2007 18:09:31
-0000 1.1.4.2
+++ ext/standard/tests/strings/vsprintf_basic6.phpt 25 Sep 2008 04:41:54
-0000
@@ -26,7 +26,7 @@
?>
--EXPECTF--
*** Testing vsprintf() : basic functionality - using exponential format ***
-string(11) "1.000000e+3"
-string(23) "1.000000e+3 2.000000e+3"
-string(35) "1.000000e+3 2.000000e+3 3.000000e+3"
+string(12) "1.000000e+03"
+string(25) "1.000000e+03 2.000000e+03"
+string(38) "1.000000e+03 2.000000e+03 3.000000e+03"
Done
Index: ext/standard/tests/strings/sprintf_variation53.phpt
===================================================================
RCS file:
/repository/php-src/ext/standard/tests/strings/sprintf_variation53.phpt,v
retrieving revision 1.2.2.2
diff -u -r1.2.2.2 sprintf_variation53.phpt
--- ext/standard/tests/strings/sprintf_variation53.phpt 29 Sep 2007 16:54:57
-0000 1.2.2.2
+++ ext/standard/tests/strings/sprintf_variation53.phpt 25 Sep 2008 04:41:54
-0000
@@ -49,9 +49,9 @@
string(1) "Ò"
string(1) "Ò"
string(1) "Ò"
-string(11) "1.234000e+3"
-string(11) "1.234000e+3"
-string(11) "1.234000e+3"
+string(12) "1.234000e+03"
+string(12) "1.234000e+03"
+string(12) "1.234000e+03"
string(4) "1234"
string(4) "1234"
string(4) "1234"
@@ -64,7 +64,7 @@
string(3) "4D2"
string(3) "4D2"
string(3) "4D2"
-string(11) "1.234000E+3"
-string(11) "1.234000E+3"
-string(11) "1.234000E+3"
+string(12) "1.234000E+03"
+string(12) "1.234000E+03"
+string(12) "1.234000E+03"
Done
\ No newline at end of file
Index: ext/standard/tests/strings/sprintf_f_2.phpt
===================================================================
RCS file: /repository/php-src/ext/standard/tests/strings/sprintf_f_2.phpt,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 sprintf_f_2.phpt
--- ext/standard/tests/strings/sprintf_f_2.phpt 4 Jun 2007 01:23:07 -0000
1.1.2.6
+++ ext/standard/tests/strings/sprintf_f_2.phpt 25 Sep 2008 04:41:54 -0000
@@ -80,37 +80,37 @@
var_dump(sprintf("%.3e", $number)); // outputs 3.63e+8
?>
---EXPECTREGEX--
-string\(7\) \"100\.426\"
-string\(6\) \"100\.43\"
-string\(3\) \"100\"
-string\(3\) \"100\"
-string\(3\) \"144\"
-string\(3\) \"144\"
-string\(34\) \"There are 100 monkeys in the world\"
-string\(28\) \"The 100\.1 contains 0 monkeys\"
-string\(30\) \"The world contains 100 monkeys\"
-string\(76\) \"The world contains 100 monkeys.
- That's a nice world full of 100 monkeys\.\"
-string\(33\) \"%b = '10100111101010011010101101'\"
-string\(8\) \"%c = 'A'\"
-string\(15\) \"%d = '43951789'\"
-string\(18\) \"%e = '4\.395179e\+7'\"
-string\(15\) \"%u = '43951789'\"
-(string\(17\) \"%u = '4251015507'\"|string\(27\) \"%u =
'18446744073665599827'\")
-string\(22\) \"%f = '43951789\.000000'\"
-string\(16\) \"%o = '247523255'\"
-string\(15\) \"%s = '43951789'\"
-string\(14\) \"%x = '29ea6ad'\"
-string\(14\) \"%X = '29EA6AD'\"
-string\(17\) \"%\+d = '\+43951789'\"
-string\(17\) \"%\+d = '-43951789'\"
-string\(8\) \"\[monkey\]\"
-string\(12\) \"\[ monkey\]\"
-string\(12\) \"\[monkey \]\"
-string\(12\) \"\[0000monkey\]\"
-string\(12\) \"\[####monkey\]\"
-string\(12\) \"\[many monke\]\"
-string\(10\) \"2006-12-18\"
-string\(6\) \"123\.10\"
-string\(8\) \"3\.625e\+8\"
+--EXPECT--
+string(7) "100.426"
+string(6) "100.43"
+string(3) "100"
+string(3) "100"
+string(3) "144"
+string(3) "144"
+string(34) "There are 100 monkeys in the world"
+string(28) "The 100.1 contains 0 monkeys"
+string(30) "The world contains 100 monkeys"
+string(76) "The world contains 100 monkeys.
+ That's a nice world full of 100 monkeys."
+string(33) "%b = '10100111101010011010101101'"
+string(8) "%c = 'A'"
+string(15) "%d = '43951789'"
+string(19) "%e = '4.395179e+07'"
+string(15) "%u = '43951789'"
+string(17) "%u = '4251015507'"
+string(22) "%f = '43951789.000000'"
+string(16) "%o = '247523255'"
+string(15) "%s = '43951789'"
+string(14) "%x = '29ea6ad'"
+string(14) "%X = '29EA6AD'"
+string(17) "%+d = '+43951789'"
+string(17) "%+d = '-43951789'"
+string(8) "[monkey]"
+string(12) "[ monkey]"
+string(12) "[monkey ]"
+string(12) "[0000monkey]"
+string(12) "[####monkey]"
+string(12) "[many monke]"
+string(10) "2006-12-18"
+string(6) "123.10"
+string(9) "3.625e+08"
Index: ext/standard/tests/strings/printf.phpt
===================================================================
RCS file: /repository/php-src/ext/standard/tests/strings/printf.phpt,v
retrieving revision 1.1.2.3.2.2
diff -u -r1.1.2.3.2.2 printf.phpt
--- ext/standard/tests/strings/printf.phpt 15 Sep 2008 11:47:16 -0000
1.1.2.3.2.2
+++ ext/standard/tests/strings/printf.phpt 25 Sep 2008 04:41:53 -0000
@@ -510,9 +510,9 @@
-1.000000e+0
2.700000e+0
-2.700000e+0
-2.333333e+7
--2.333333e+7
-1.234000e+3
+2.333333e+07
+-2.333333e+07
+1.234000e+03
*** Output for unsigned integer type ***
Index: ext/standard/tests/strings/printf_64bit.phpt
===================================================================
RCS file: /repository/php-src/ext/standard/tests/strings/printf_64bit.phpt,v
retrieving revision 1.1.2.4.2.2
diff -u -r1.1.2.4.2.2 printf_64bit.phpt
--- ext/standard/tests/strings/printf_64bit.phpt 16 Sep 2008 13:41:34
-0000 1.1.2.4.2.2
+++ ext/standard/tests/strings/printf_64bit.phpt 25 Sep 2008 04:41:54
-0000
@@ -510,9 +510,9 @@
-1.000000e+0
2.700000e+0
-2.700000e+0
-2.333333e+7
--2.333333e+7
-1.234000e+3
+2.333333e+07
+-2.333333e+07
+1.234000e+03
*** Output for unsigned integer type ***
Index: ext/standard/tests/strings/vfprintf_basic.phpt
===================================================================
RCS file: /repository/php-src/ext/standard/tests/strings/vfprintf_basic.phpt,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 vfprintf_basic.phpt
--- ext/standard/tests/strings/vfprintf_basic.phpt 20 Jun 2008 04:21:58
-0000 1.1.2.1
+++ ext/standard/tests/strings/vfprintf_basic.phpt 25 Sep 2008 04:41:54
-0000
@@ -62,8 +62,8 @@
int(3)
string(5) "A B C"
int(5)
-string(35) "1.000000e+3 2.000000E+4 2.000000e+2"
-int(35)
+string(38) "1.000000e+03 2.000000E+04 2.000000e+02"
+int(38)
string(2) "50"
int(2)
string(35) "Testing 1001 6 2.550200 foobar f 41"
Index: ext/standard/tests/strings/sprintf_variation47.phpt
===================================================================
RCS file:
/repository/php-src/ext/standard/tests/strings/sprintf_variation47.phpt,v
retrieving revision 1.2.2.2
diff -u -r1.2.2.2 sprintf_variation47.phpt
--- ext/standard/tests/strings/sprintf_variation47.phpt 29 Sep 2007 16:54:57
-0000 1.2.2.2
+++ ext/standard/tests/strings/sprintf_variation47.phpt 25 Sep 2008 04:41:54
-0000
@@ -57,47 +57,47 @@
*** Testing sprintf() : scientific formats with float values ***
-- Iteration 1 --
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(13) " -2.147484e+9"
-string(13) "-2.147484e+9 "
-string(13) " -2.147484e+9"
-string(13) "
--2.147484e+9"
-string(12) "-2.147484e+9"
-string(30) " -2.147484e+9"
+string(14) " -2.147484e+09"
+string(14) "-2.147484e+09 "
+string(14) " -2.147484e+09"
+string(14) "
+-2.147484e+09"
+string(13) "-2.147484e+09"
+string(30) " -2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 2 --
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(12) " 2.147484e+9"
-string(12) "2.147484e+9 "
-string(12) " 2.147484e+9"
-string(12) "
-2.147484e+9"
-string(11) "2.147484e+9"
-string(30) " 2.147484e+9"
+string(13) " 2.147484e+09"
+string(13) "2.147484e+09 "
+string(13) " 2.147484e+09"
+string(13) "
+2.147484e+09"
+string(12) "2.147484e+09"
+string(30) " 2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 3 --
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(13) " -2.147484e+9"
-string(13) "-2.147484e+9 "
-string(13) " -2.147484e+9"
-string(13) "
--2.147484e+9"
-string(12) "-2.147484e+9"
-string(30) " -2.147484e+9"
+string(14) " -2.147484e+09"
+string(14) "-2.147484e+09 "
+string(14) " -2.147484e+09"
+string(14) "
+-2.147484e+09"
+string(13) "-2.147484e+09"
+string(30) " -2.147484e+09"
string(4) "0-1]"
string(1) "e"
@@ -117,32 +117,32 @@
string(1) "e"
-- Iteration 5 --
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(12) " 2.147484e+9"
-string(12) "2.147484e+9 "
-string(12) " 2.147484e+9"
-string(12) "
-2.147484e+9"
-string(11) "2.147484e+9"
-string(30) " 2.147484e+9"
+string(13) " 2.147484e+09"
+string(13) "2.147484e+09 "
+string(13) " 2.147484e+09"
+string(13) "
+2.147484e+09"
+string(12) "2.147484e+09"
+string(30) " 2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 6 --
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(13) " -2.147484e+9"
-string(13) "-2.147484e+9 "
-string(13) " -2.147484e+9"
-string(13) "
--2.147484e+9"
-string(12) "-2.147484e+9"
-string(30) " -2.147484e+9"
+string(14) " -2.147484e+09"
+string(14) "-2.147484e+09 "
+string(14) " -2.147484e+09"
+string(14) "
+-2.147484e+09"
+string(13) "-2.147484e+09"
+string(30) " -2.147484e+09"
string(4) "0-1]"
string(1) "e"
@@ -162,17 +162,17 @@
string(1) "e"
-- Iteration 8 --
-string(12) "-1.000000e-1"
+string(13) "-1.000000e-01"
string(1) "e"
-string(12) "-1.000000e-1"
+string(13) "-1.000000e-01"
string(1) "e"
-string(13) " -1.000000e-1"
-string(13) "-1.000000e-1 "
-string(13) " -1.000000e-1"
-string(13) "
--1.000000e-1"
-string(12) "-1.000000e-1"
-string(30) " -1.000000e-1"
+string(14) " -1.000000e-01"
+string(14) "-1.000000e-01 "
+string(14) " -1.000000e-01"
+string(14) "
+-1.000000e-01"
+string(13) "-1.000000e-01"
+string(30) " -1.000000e-01"
string(4) "0-1]"
string(1) "e"
@@ -192,152 +192,152 @@
string(1) "e"
-- Iteration 10 --
-string(11) "1.000000e+5"
+string(12) "1.000000e+05"
string(1) "e"
-string(11) "1.000000e+5"
+string(12) "1.000000e+05"
string(1) "e"
-string(12) " 1.000000e+5"
-string(12) "1.000000e+5 "
-string(12) " 1.000000e+5"
-string(12) "
-1.000000e+5"
-string(11) "1.000000e+5"
-string(30) " 1.000000e+5"
+string(13) " 1.000000e+05"
+string(13) "1.000000e+05 "
+string(13) " 1.000000e+05"
+string(13) "
+1.000000e+05"
+string(12) "1.000000e+05"
+string(30) " 1.000000e+05"
string(4) "0-1]"
string(1) "e"
-- Iteration 11 --
-string(12) "-1.000000e+5"
+string(13) "-1.000000e+05"
string(1) "e"
-string(12) "-1.000000e+5"
+string(13) "-1.000000e+05"
string(1) "e"
-string(13) " -1.000000e+5"
-string(13) "-1.000000e+5 "
-string(13) " -1.000000e+5"
-string(13) "
--1.000000e+5"
-string(12) "-1.000000e+5"
-string(30) " -1.000000e+5"
+string(14) " -1.000000e+05"
+string(14) "-1.000000e+05 "
+string(14) " -1.000000e+05"
+string(14) "
+-1.000000e+05"
+string(13) "-1.000000e+05"
+string(30) " -1.000000e+05"
string(4) "0-1]"
string(1) "e"
-- Iteration 12 --
-string(12) "-1.000000e+5"
+string(13) "-1.000000e+05"
string(1) "e"
-string(12) "-1.000000e+5"
+string(13) "-1.000000e+05"
string(1) "e"
-string(13) " -1.000000e+5"
-string(13) "-1.000000e+5 "
-string(13) " -1.000000e+5"
-string(13) "
--1.000000e+5"
-string(12) "-1.000000e+5"
-string(30) " -1.000000e+5"
+string(14) " -1.000000e+05"
+string(14) "-1.000000e+05 "
+string(14) " -1.000000e+05"
+string(14) "
+-1.000000e+05"
+string(13) "-1.000000e+05"
+string(30) " -1.000000e+05"
string(4) "0-1]"
string(1) "e"
-- Iteration 13 --
-string(11) "1.000000e+5"
+string(12) "1.000000e+05"
string(1) "e"
-string(11) "1.000000e+5"
+string(12) "1.000000e+05"
string(1) "e"
-string(12) " 1.000000e+5"
-string(12) "1.000000e+5 "
-string(12) " 1.000000e+5"
-string(12) "
-1.000000e+5"
-string(11) "1.000000e+5"
-string(30) " 1.000000e+5"
+string(13) " 1.000000e+05"
+string(13) "1.000000e+05 "
+string(13) " 1.000000e+05"
+string(13) "
+1.000000e+05"
+string(12) "1.000000e+05"
+string(30) " 1.000000e+05"
string(4) "0-1]"
string(1) "e"
-- Iteration 14 --
-string(11) "1.000000e+5"
+string(12) "1.000000e+05"
string(1) "e"
-string(11) "1.000000e+5"
+string(12) "1.000000e+05"
string(1) "e"
-string(12) " 1.000000e+5"
-string(12) "1.000000e+5 "
-string(12) " 1.000000e+5"
-string(12) "
-1.000000e+5"
-string(11) "1.000000e+5"
-string(30) " 1.000000e+5"
+string(13) " 1.000000e+05"
+string(13) "1.000000e+05 "
+string(13) " 1.000000e+05"
+string(13) "
+1.000000e+05"
+string(12) "1.000000e+05"
+string(30) " 1.000000e+05"
string(4) "0-1]"
string(1) "e"
-- Iteration 15 --
-string(12) "-1.000000e-5"
+string(13) "-1.000000e-05"
string(1) "e"
-string(12) "-1.000000e-5"
+string(13) "-1.000000e-05"
string(1) "e"
-string(13) " -1.000000e-5"
-string(13) "-1.000000e-5 "
-string(13) " -1.000000e-5"
-string(13) "
--1.000000e-5"
-string(12) "-1.000000e-5"
-string(30) " -1.000000e-5"
+string(14) " -1.000000e-05"
+string(14) "-1.000000e-05 "
+string(14) " -1.000000e-05"
+string(14) "
+-1.000000e-05"
+string(13) "-1.000000e-05"
+string(30) " -1.000000e-05"
string(4) "0-1]"
string(1) "e"
-- Iteration 16 --
-string(11) "1.000000e+8"
+string(12) "1.000000e+08"
string(1) "e"
-string(11) "1.000000e+8"
+string(12) "1.000000e+08"
string(1) "e"
-string(12) " 1.000000e+8"
-string(12) "1.000000e+8 "
-string(12) " 1.000000e+8"
-string(12) "
-1.000000e+8"
-string(11) "1.000000e+8"
-string(30) " 1.000000e+8"
+string(13) " 1.000000e+08"
+string(13) "1.000000e+08 "
+string(13) " 1.000000e+08"
+string(13) "
+1.000000e+08"
+string(12) "1.000000e+08"
+string(30) " 1.000000e+08"
string(4) "0-1]"
string(1) "e"
-- Iteration 17 --
-string(12) "-1.000000e+9"
+string(13) "-1.000000e+09"
string(1) "e"
-string(12) "-1.000000e+9"
+string(13) "-1.000000e+09"
string(1) "e"
-string(13) " -1.000000e+9"
-string(13) "-1.000000e+9 "
-string(13) " -1.000000e+9"
-string(13) "
--1.000000e+9"
-string(12) "-1.000000e+9"
-string(30) " -1.000000e+9"
+string(14) " -1.000000e+09"
+string(14) "-1.000000e+09 "
+string(14) " -1.000000e+09"
+string(14) "
+-1.000000e+09"
+string(13) "-1.000000e+09"
+string(30) " -1.000000e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 18 --
-string(11) "1.000000e+1"
+string(12) "1.000000e+01"
string(1) "e"
-string(11) "1.000000e+1"
+string(12) "1.000000e+01"
string(1) "e"
-string(12) " 1.000000e+1"
-string(12) "1.000000e+1 "
-string(12) " 1.000000e+1"
-string(12) "
-1.000000e+1"
-string(11) "1.000000e+1"
-string(30) " 1.000000e+1"
+string(13) " 1.000000e+01"
+string(13) "1.000000e+01 "
+string(13) " 1.000000e+01"
+string(13) "
+1.000000e+01"
+string(12) "1.000000e+01"
+string(30) " 1.000000e+01"
string(4) "0-1]"
string(1) "e"
-- Iteration 19 --
-string(11) "1.050000e+6"
+string(12) "1.050000e+06"
string(1) "e"
-string(11) "1.050000e+6"
+string(12) "1.050000e+06"
string(1) "e"
-string(12) " 1.050000e+6"
-string(12) "1.050000e+6 "
-string(12) " 1.050000e+6"
-string(12) "
-1.050000e+6"
-string(11) "1.050000e+6"
-string(30) " 1.050000e+6"
+string(13) " 1.050000e+06"
+string(13) "1.050000e+06 "
+string(13) " 1.050000e+06"
+string(13) "
+1.050000e+06"
+string(12) "1.050000e+06"
+string(30) " 1.050000e+06"
string(4) "0-1]"
string(1) "e"
Done
\ No newline at end of file
Index: ext/standard/tests/strings/vsprintf_variation19.phpt
===================================================================
RCS file:
/repository/php-src/ext/standard/tests/strings/vsprintf_variation19.phpt,v
retrieving revision 1.1.4.3
diff -u -r1.1.4.3 vsprintf_variation19.phpt
--- ext/standard/tests/strings/vsprintf_variation19.phpt 6 Nov 2007
12:54:28 -0000 1.1.4.3
+++ ext/standard/tests/strings/vsprintf_variation19.phpt 25 Sep 2008
04:41:54 -0000
@@ -72,7 +72,7 @@
string(7) "A B C"
-- Iteration 6 --
-string(38) "2.000000e+1 2.000000e-1 -2.000000e+1"
+string(41) "2.000000e+01 2.000000e-01 -2.000000e+01"
-- Iteration 7 --
string(18) "4294967285 22 33"
@@ -87,5 +87,5 @@
string(16) "11 FFFFFFDE 33"
-- Iteration 11 --
-string(38) "2.000000E+1 2.000000E-1 -2.000000E+1"
+string(41) "2.000000E+01 2.000000E-01 -2.000000E+01"
Done
Index: ext/standard/tests/strings/sprintf_variation46.phpt
===================================================================
RCS file:
/repository/php-src/ext/standard/tests/strings/sprintf_variation46.phpt,v
retrieving revision 1.2.2.2
diff -u -r1.2.2.2 sprintf_variation46.phpt
--- ext/standard/tests/strings/sprintf_variation46.phpt 29 Sep 2007 16:54:57
-0000 1.2.2.2
+++ ext/standard/tests/strings/sprintf_variation46.phpt 25 Sep 2008 04:41:54
-0000
@@ -100,182 +100,182 @@
string(1) "e"
-- Iteration 4 --
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(13) " -2.147484e+9"
-string(13) "-2.147484e+9 "
-string(13) " -2.147484e+9"
-string(13) "
--2.147484e+9"
-string(12) "-2.147484e+9"
-string(30) " -2.147484e+9"
+string(14) " -2.147484e+09"
+string(14) "-2.147484e+09 "
+string(14) " -2.147484e+09"
+string(14) "
+-2.147484e+09"
+string(13) "-2.147484e+09"
+string(30) " -2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 5 --
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(13) " -2.147484e+9"
-string(13) "-2.147484e+9 "
-string(13) " -2.147484e+9"
-string(13) "
--2.147484e+9"
-string(12) "-2.147484e+9"
-string(30) " -2.147484e+9"
+string(14) " -2.147484e+09"
+string(14) "-2.147484e+09 "
+string(14) " -2.147484e+09"
+string(14) "
+-2.147484e+09"
+string(13) "-2.147484e+09"
+string(30) " -2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 6 --
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(12) " 2.147484e+9"
-string(12) "2.147484e+9 "
-string(12) " 2.147484e+9"
-string(12) "
-2.147484e+9"
-string(11) "2.147484e+9"
-string(30) " 2.147484e+9"
+string(13) " 2.147484e+09"
+string(13) "2.147484e+09 "
+string(13) " 2.147484e+09"
+string(13) "
+2.147484e+09"
+string(12) "2.147484e+09"
+string(30) " 2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 7 --
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(12) " 2.147484e+9"
-string(12) "2.147484e+9 "
-string(12) " 2.147484e+9"
-string(12) "
-2.147484e+9"
-string(11) "2.147484e+9"
-string(30) " 2.147484e+9"
+string(13) " 2.147484e+09"
+string(13) "2.147484e+09 "
+string(13) " 2.147484e+09"
+string(13) "
+2.147484e+09"
+string(12) "2.147484e+09"
+string(30) " 2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 8 --
-string(11) "4.667000e+3"
+string(12) "4.667000e+03"
string(1) "e"
-string(11) "4.667000e+3"
+string(12) "4.667000e+03"
string(1) "e"
-string(12) " 4.667000e+3"
-string(12) "4.667000e+3 "
-string(12) " 4.667000e+3"
-string(12) "
-4.667000e+3"
-string(11) "4.667000e+3"
-string(30) " 4.667000e+3"
+string(13) " 4.667000e+03"
+string(13) "4.667000e+03 "
+string(13) " 4.667000e+03"
+string(13) "
+4.667000e+03"
+string(12) "4.667000e+03"
+string(30) " 4.667000e+03"
string(4) "0-1]"
string(1) "e"
-- Iteration 9 --
-string(11) "4.779000e+3"
+string(12) "4.779000e+03"
string(1) "e"
-string(11) "4.779000e+3"
+string(12) "4.779000e+03"
string(1) "e"
-string(12) " 4.779000e+3"
-string(12) "4.779000e+3 "
-string(12) " 4.779000e+3"
-string(12) "
-4.779000e+3"
-string(11) "4.779000e+3"
-string(30) " 4.779000e+3"
+string(13) " 4.779000e+03"
+string(13) "4.779000e+03 "
+string(13) " 4.779000e+03"
+string(13) "
+4.779000e+03"
+string(12) "4.779000e+03"
+string(30) " 4.779000e+03"
string(4) "0-1]"
string(1) "e"
-- Iteration 10 --
-string(11) "4.095000e+3"
+string(12) "4.095000e+03"
string(1) "e"
-string(11) "4.095000e+3"
+string(12) "4.095000e+03"
string(1) "e"
-string(12) " 4.095000e+3"
-string(12) "4.095000e+3 "
-string(12) " 4.095000e+3"
-string(12) "
-4.095000e+3"
-string(11) "4.095000e+3"
-string(30) " 4.095000e+3"
+string(13) " 4.095000e+03"
+string(13) "4.095000e+03 "
+string(13) " 4.095000e+03"
+string(13) "
+4.095000e+03"
+string(12) "4.095000e+03"
+string(30) " 4.095000e+03"
string(4) "0-1]"
string(1) "e"
-- Iteration 11 --
-string(11) "2.500000e+2"
+string(12) "2.500000e+02"
string(1) "e"
-string(11) "2.500000e+2"
+string(12) "2.500000e+02"
string(1) "e"
-string(12) " 2.500000e+2"
-string(12) "2.500000e+2 "
-string(12) " 2.500000e+2"
-string(12) "
-2.500000e+2"
-string(11) "2.500000e+2"
-string(30) " 2.500000e+2"
+string(13) " 2.500000e+02"
+string(13) "2.500000e+02 "
+string(13) " 2.500000e+02"
+string(13) "
+2.500000e+02"
+string(12) "2.500000e+02"
+string(30) " 2.500000e+02"
string(4) "0-1]"
string(1) "e"
-- Iteration 12 --
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(13) " -2.147484e+9"
-string(13) "-2.147484e+9 "
-string(13) " -2.147484e+9"
-string(13) "
--2.147484e+9"
-string(12) "-2.147484e+9"
-string(30) " -2.147484e+9"
+string(14) " -2.147484e+09"
+string(14) "-2.147484e+09 "
+string(14) " -2.147484e+09"
+string(14) "
+-2.147484e+09"
+string(13) "-2.147484e+09"
+string(30) " -2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 13 --
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(12) " 2.147484e+9"
-string(12) "2.147484e+9 "
-string(12) " 2.147484e+9"
-string(12) "
-2.147484e+9"
-string(11) "2.147484e+9"
-string(30) " 2.147484e+9"
+string(13) " 2.147484e+09"
+string(13) "2.147484e+09 "
+string(13) " 2.147484e+09"
+string(13) "
+2.147484e+09"
+string(12) "2.147484e+09"
+string(30) " 2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 14 --
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(12) " 2.147484e+9"
-string(12) "2.147484e+9 "
-string(12) " 2.147484e+9"
-string(12) "
-2.147484e+9"
-string(11) "2.147484e+9"
-string(30) " 2.147484e+9"
+string(13) " 2.147484e+09"
+string(13) "2.147484e+09 "
+string(13) " 2.147484e+09"
+string(13) "
+2.147484e+09"
+string(12) "2.147484e+09"
+string(30) " 2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 15 --
-string(11) "8.300000e+1"
+string(12) "8.300000e+01"
string(1) "e"
-string(11) "8.300000e+1"
+string(12) "8.300000e+01"
string(1) "e"
-string(12) " 8.300000e+1"
-string(12) "8.300000e+1 "
-string(12) " 8.300000e+1"
-string(12) "
-8.300000e+1"
-string(11) "8.300000e+1"
-string(30) " 8.300000e+1"
+string(13) " 8.300000e+01"
+string(13) "8.300000e+01 "
+string(13) " 8.300000e+01"
+string(13) "
+8.300000e+01"
+string(12) "8.300000e+01"
+string(30) " 8.300000e+01"
string(4) "0-1]"
string(1) "e"
@@ -295,32 +295,32 @@
string(1) "e"
-- Iteration 17 --
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(12) "-2.147484e+9"
+string(13) "-2.147484e+09"
string(1) "e"
-string(13) " -2.147484e+9"
-string(13) "-2.147484e+9 "
-string(13) " -2.147484e+9"
-string(13) "
--2.147484e+9"
-string(12) "-2.147484e+9"
-string(30) " -2.147484e+9"
+string(14) " -2.147484e+09"
+string(14) "-2.147484e+09 "
+string(14) " -2.147484e+09"
+string(14) "
+-2.147484e+09"
+string(13) "-2.147484e+09"
+string(30) " -2.147484e+09"
string(4) "0-1]"
string(1) "e"
-- Iteration 18 --
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(11) "2.147484e+9"
+string(12) "2.147484e+09"
string(1) "e"
-string(12) " 2.147484e+9"
-string(12) "2.147484e+9 "
-string(12) " 2.147484e+9"
-string(12) "
-2.147484e+9"
-string(11) "2.147484e+9"
-string(30) " 2.147484e+9"
+string(13) " 2.147484e+09"
+string(13) "2.147484e+09 "
+string(13) " 2.147484e+09"
+string(13) "
+2.147484e+09"
+string(12) "2.147484e+09"
+string(30) " 2.147484e+09"
string(4) "0-1]"
string(1) "e"
Done
\ No newline at end of file
Index: ext/standard/tests/strings/vsprintf_variation17.phpt
===================================================================
RCS file:
/repository/php-src/ext/standard/tests/strings/vsprintf_variation17.phpt,v
retrieving revision 1.1.4.2
diff -u -r1.1.4.2 vsprintf_variation17.phpt
--- ext/standard/tests/strings/vsprintf_variation17.phpt 5 Oct 2007
18:09:31 -0000 1.1.4.2
+++ ext/standard/tests/strings/vsprintf_variation17.phpt 25 Sep 2008
04:41:54 -0000
@@ -48,17 +48,17 @@
*** Testing vsprintf() : scientific formats and scientific values ***
-- Iteration 1 --
-string(36) "0.000000e+0 +1.000000e+0 1.000000e+3"
+string(37) "0.000000e+0 +1.000000e+0 1.000000e+03"
-- Iteration 2 --
-string(38) "2.200000e+2 e 1.000000e+1 1.000000e+10"
+string(40) "2.200000e+02 e 1.000000e+01 1.000000e+10"
-- Iteration 3 --
-string(32) "-2.2000e+13 1.0000e+21 1.2000e+2"
+string(33) "-2.2000e+13 1.0000e+21 1.2000e+02"
-- Iteration 4 --
-string(74) "#########1.000000e+1 1.000000e+2 $$$$$$$$-1.000000e+3
_________1.000000e+2"
+string(75) "########1.000000e+01 1.000000e+02 $$$$$$$-1.000000e+03
________1.000000e+02"
-- Iteration 5 --
-string(47) "1.000000e+3 2.000000e+3 3.000000e+3 4.000000e+3"
+string(51) "1.000000e+03 2.000000e+03 3.000000e+03 4.000000e+03"
Done
Index: ext/standard/tests/strings/vsprintf_variation18.phpt
===================================================================
RCS file:
/repository/php-src/ext/standard/tests/strings/vsprintf_variation18.phpt,v
retrieving revision 1.1.4.2
diff -u -r1.1.4.2 vsprintf_variation18.phpt
--- ext/standard/tests/strings/vsprintf_variation18.phpt 5 Oct 2007
18:09:31 -0000 1.1.4.2
+++ ext/standard/tests/strings/vsprintf_variation18.phpt 25 Sep 2008
04:41:54 -0000
@@ -67,22 +67,22 @@
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing vsprintf() : scientific formats and non-scientific values ***
-- Iteration 1 --
-string(232) "2.200000e+0 +2.000000e-1 1.020000e+1
- 1.234562e+5 e -1.234679e+3 1.234679e+3
- 2.0000e+1 2.1220e+2 -4.110000e+11 2.2120e+3
- 1.234578e+4 1.200000e+1 -1.200000e+1 -1.234562e+5
- 1.020000e+1 1.234562e+5 2.200000e+0 2.000000e-1"
+string(245) "2.200000e+0 +2.000000e-01 1.020000e+01
+ 1.234562e+05 e -1.234679e+03 1.234679e+03
+ 2.0000e+01 2.1220e+02 -4.110000e+11 2.2120e+03
+ 1.234578e+04 1.200000e+01 -1.200000e+01 -1.234562e+05
+ 1.020000e+01 1.234562e+05 2.200000e+0 2.000000e-01"
-- Iteration 2 --
-string(228) "0.000000e+0 +0.000000e+0 0.000000e+0
- 1.230000e+2 e -1.230000e+2 1.230000e+2
- 0.0000e+0 0.0000e+0 1.234560e+5 0.0000e+0
- 1.234000e+3 0.000000e+0 0.000000e+0 0.000000e+0
- 0.000000e+0 1.230000e+2 0.000000e+0 0.000000e+0"
+string(234) "0.000000e+0 +0.000000e+0 0.000000e+0
+ 1.230000e+02 e -1.230000e+02 1.230000e+02
+ 0.0000e+0 0.0000e+0 1.234560e+05 0.0000e+0
+ 1.234000e+03 0.000000e+0 0.000000e+0 0.000000e+0
+ 0.000000e+0 1.230000e+02 0.000000e+0 0.000000e+0"
-- Iteration 3 --
string(227) "1.000000e+0 +1.000000e+0 1.000000e+0
Index: ext/standard/tests/strings/sprintf_basic6.phpt
===================================================================
RCS file: /repository/php-src/ext/standard/tests/strings/sprintf_basic6.phpt,v
retrieving revision 1.2.2.2
diff -u -r1.2.2.2 sprintf_basic6.phpt
--- ext/standard/tests/strings/sprintf_basic6.phpt 29 Sep 2007 16:54:57
-0000 1.2.2.2
+++ ext/standard/tests/strings/sprintf_basic6.phpt 25 Sep 2008 04:41:54
-0000
@@ -35,7 +35,7 @@
--EXPECTF--
*** Testing sprintf() : basic functionality - using exponential format ***
string(6) "format"
-string(11) "1.000000e+3"
-string(23) "1.000000E+3 2.000000e+3"
-string(35) "1.000000e+3 2.000000E+3 3.000000e+3"
+string(12) "1.000000e+03"
+string(25) "1.000000E+03 2.000000e+03"
+string(38) "1.000000e+03 2.000000E+03 3.000000e+03"
Done
Index: ext/standard/tests/strings/fprintf_variation_005.phpt
===================================================================
RCS file:
/repository/php-src/ext/standard/tests/strings/fprintf_variation_005.phpt,v
retrieving revision 1.1.2.3
diff -u -r1.1.2.3 fprintf_variation_005.phpt
--- ext/standard/tests/strings/fprintf_variation_005.phpt 19 Jul 2007
15:15:26 -0000 1.1.2.3
+++ ext/standard/tests/strings/fprintf_variation_005.phpt 25 Sep 2008
04:41:53 -0000
@@ -40,7 +40,7 @@
-1.000000e+0
2.700000e+0
-2.700000e+0
-2.333333e+7
--2.333333e+7
-1.234000e+3
+2.333333e+07
+-2.333333e+07
+1.234000e+03
Done
Index: main/snprintf.c
===================================================================
RCS file: /repository/php-src/main/snprintf.c,v
retrieving revision 1.37.2.4.2.14.2.5
diff -u -r1.37.2.4.2.14.2.5 snprintf.c
--- main/snprintf.c 15 Sep 2008 11:47:16 -0000 1.37.2.4.2.14.2.5
+++ main/snprintf.c 25 Sep 2008 04:41:54 -0000
@@ -450,6 +450,9 @@
/*
* Make sure the exponent has at least 2 digits
*/
+ if (t_len <= 1) {
+ *s++ = '0';
+ }
while (t_len--) {
*s++ = *p++;
}
@@ -635,7 +638,6 @@
free_zcopy = 0;
fmt++;
-
/*
* Try to avoid checking for flags, width or precision
*/
Index: ext/standard/tests/general_functions/001.phpt
===================================================================
RCS file: /repository/php-src/ext/standard/tests/general_functions/001.phpt,v
retrieving revision 1.4.6.1
diff -u -r1.4.6.1 001.phpt
--- ext/standard/tests/general_functions/001.phpt 25 Dec 2006 14:27:51
-0000 1.4.6.1
+++ ext/standard/tests/general_functions/001.phpt 25 Sep 2008 04:41:53
-0000
@@ -63,5 +63,5 @@
99.00
1.234000e-18
1.234000e+18
-9.843243e+6
--9.843243e+6
+9.843243e+06
+-9.843243e+06
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php