diff options
Diffstat (limited to 'ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c')
| -rw-r--r-- | ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c b/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c index 4caf9e3afd..78643754cd 100644 --- a/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c +++ b/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c @@ -36,6 +36,8 @@ static const char rcsid[] = "#(@) $Id$"; #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 @@ xml_element* XMLRPC_to_xml_element_worker(XMLRPC_VALUE current_vector, XMLRPC_VA 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); |
