Hi,
Using the %e format specifier in the *printf() functions gives one less
decimal place than it should. The recent *printf changes only happened to
fix the problem when precision is 0. The new %E works correctly, which is
obvious from the code. :-) Anyway, the attached patches remove the few
problem lines.
BTW, should there be a NEWS entry about the addition of %g, %G, and the
previously missing %E (uppercase)? If I wasn't following the changes,
that's something I'd want to see... :-)
Matt
Index: ext/standard/formatted_print.c
===================================================================
RCS file: /repository/php-src/ext/standard/formatted_print.c,v
retrieving revision 1.93
diff -u -r1.93 formatted_print.c
--- ext/standard/formatted_print.c 20 Dec 2006 18:33:27 -0000 1.93
+++ ext/standard/formatted_print.c 22 Dec 2006 11:55:29 -0000
@@ -368,9 +368,6 @@
switch (fmt) {
case 'e':
- if (precision) {
- precision--;
- }
case 'E':
case 'f':
case 'F':
@@ -485,9 +482,6 @@
switch (fmt) {
case 0x65 /* 'e' */:
- if (precision) {
- precision--;
- }
case 0x45 /* 'E' */:
case 0x46 /* 'F' */:
case 0x66 /* 'f' */:
Index: ext/standard/formatted_print.c
===================================================================
RCS file: /repository/php-src/ext/standard/formatted_print.c,v
retrieving revision 1.82.2.1.2.9
diff -u -r1.82.2.1.2.9 formatted_print.c
--- ext/standard/formatted_print.c 19 Dec 2006 13:13:29 -0000
1.82.2.1.2.9
+++ ext/standard/formatted_print.c 22 Dec 2006 11:55:29 -0000
@@ -229,9 +229,6 @@
switch (fmt) {
case 'e':
- if (precision) {
- precision--;
- }
case 'E':
case 'f':
case 'F':
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php