tony2001 Wed Feb 21 14:25:27 2007 UTC
Added files: (Branch: PHP_5_2)
/php-src/ext/xmlrpc/tests bug40576.phpt
Modified files:
/php-src NEWS
/php-src/ext/xmlrpc/libxmlrpc xml_to_xmlrpc.c
Log:
MFH: fix #40576 (double values are truncated to 6 decimal digits when
encoding)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.554&r2=1.2027.2.547.2.555&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.554 php-src/NEWS:1.2027.2.547.2.555
--- php-src/NEWS:1.2027.2.547.2.554 Wed Feb 21 13:09:03 2007
+++ php-src/NEWS Wed Feb 21 14:25:27 2007
@@ -9,6 +9,8 @@
- Added --ri switch to CLI which allows to check extension information.
(Marcus)
- Added tidyNode::getParent() method (John, Nuno)
- Fixed zend_llist_remove_tail (Michael Wallner, Dmitry)
+- Fixed bug #40576 (double values are truncated to 6 decimal digits when
+ encoding). (Tony)
- Fixed bug #40560 (DIR functions do not work on root UNC path). (Dmitry)
- Fixed bug #40548 (SplFileInfo::getOwner/getGroup give a warning on broken
symlink). (Marcus)
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c?r1=1.5&r2=1.5.6.1&diff_format=u
Index: php-src/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c
diff -u php-src/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c:1.5
php-src/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c:1.5.6.1
--- php-src/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c:1.5 Tue Apr 27 17:33:59 2004
+++ php-src/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c Wed Feb 21 14:25:27 2007
@@ -31,11 +31,13 @@
*/
-static const char rcsid[] = "#(@) $Id: xml_to_xmlrpc.c,v 1.5 2004/04/27
17:33:59 iliaa Exp $";
+static const char rcsid[] = "#(@) $Id: xml_to_xmlrpc.c,v 1.5.6.1 2007/02/21
14:25:27 tony2001 Exp $";
#ifdef _WIN32
#include "xmlrpc_win32.h"
#endif
+#include "php.h"
+#include "main/snprintf.h"
#include <string.h>
#include <stdlib.h>
#include "xml_to_xmlrpc.h"
@@ -225,9 +227,12 @@
simplestring_add(&elem_val->text, buf);
break;
case xmlrpc_double:
- elem_val->name = strdup(ELEM_DOUBLE);
- snprintf(buf, BUF_SIZE, "%f", XMLRPC_GetValueDouble(node));
- simplestring_add(&elem_val->text, buf);
+ {
+ TSRMLS_FETCH();
+ elem_val->name = strdup(ELEM_DOUBLE);
+ ap_php_snprintf(buf, BUF_SIZE, "%.*G", (int) EG(precision),
XMLRPC_GetValueDouble(node));
+ simplestring_add(&elem_val->text, buf);
+ }
break;
case xmlrpc_datetime:
elem_val->name = strdup(ELEM_DATETIME);
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/bug40576.phpt?view=markup&rev=1.1
Index: php-src/ext/xmlrpc/tests/bug40576.phpt
+++ php-src/ext/xmlrpc/tests/bug40576.phpt
--TEST--
Bug #40576 (double values are truncated to 6 decimal digits when encoding)
--INI--
precision=12
--FILE--
<?php
var_dump(xmlrpc_encode(1.123456789));
var_dump(xmlrpc_encode(11234567891010));
var_dump(xmlrpc_encode(11234567));
var_dump(xmlrpc_encode(""));
var_dump(xmlrpc_encode("test"));
var_dump(xmlrpc_encode("1.22222222222222222222222"));
echo "Done\n";
?>
--EXPECTF--
string(125) "<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
<value>
<double>1.123456789</double>
</value>
</param>
</params>
"
string(128) "<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
<value>
<double>11234567891000</double>
</value>
</param>
</params>
"
string(116) "<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
<value>
<int>11234567</int>
</value>
</param>
</params>
"
string(106) "<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
<value>
<string/>
</value>
</param>
</params>
"
string(118) "<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
<value>
<string>test</string>
</value>
</param>
</params>
"
string(139) "<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
<value>
<string>1.22222222222222222222222</string>
</value>
</param>
</params>
"
Done
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php