iliaa Mon Oct 1 15:22:41 2007 UTC
Modified files: (Branch: PHP_5_3)
/php-src/main snprintf.c spprintf.c
/php-src/ext/json json.c
Log:
Fixed bug #42785 (json_encode() formats doubles according to locale rather
then following standard syntax).
http://cvs.php.net/viewvc.cgi/php-src/main/snprintf.c?r1=1.37.2.4.2.14&r2=1.37.2.4.2.14.2.1&diff_format=u
Index: php-src/main/snprintf.c
diff -u php-src/main/snprintf.c:1.37.2.4.2.14
php-src/main/snprintf.c:1.37.2.4.2.14.2.1
--- php-src/main/snprintf.c:1.37.2.4.2.14 Fri Aug 3 14:31:27 2007
+++ php-src/main/snprintf.c Mon Oct 1 15:22:41 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: snprintf.c,v 1.37.2.4.2.14 2007/08/03 14:31:27 tony2001 Exp $ */
+/* $Id: snprintf.c,v 1.37.2.4.2.14.2.1 2007/10/01 15:22:41 iliaa Exp $ */
#include "php.h"
@@ -1004,6 +1004,7 @@
case 'g':
+ case 'k':
case 'G':
case 'H':
switch(modifier) {
@@ -1045,7 +1046,7 @@
lconv = localeconv();
}
#endif
- s = php_gcvt(fp_num, precision,
*fmt=='H' ? '.' : LCONV_DECIMAL_POINT, (*fmt == 'G' || *fmt == 'H')?'E':'e',
&num_buf[1]);
+ s = php_gcvt(fp_num, precision,
(*fmt=='H' || *fmt == 'k') ? '.' : LCONV_DECIMAL_POINT, (*fmt == 'G' || *fmt ==
'H')?'E':'e', &num_buf[1]);
if (*s == '-') {
prefix_char = *s++;
} else if (print_sign) {
http://cvs.php.net/viewvc.cgi/php-src/main/spprintf.c?r1=1.25.2.2.2.10&r2=1.25.2.2.2.10.2.1&diff_format=u
Index: php-src/main/spprintf.c
diff -u php-src/main/spprintf.c:1.25.2.2.2.10
php-src/main/spprintf.c:1.25.2.2.2.10.2.1
--- php-src/main/spprintf.c:1.25.2.2.2.10 Fri Aug 3 14:31:28 2007
+++ php-src/main/spprintf.c Mon Oct 1 15:22:41 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spprintf.c,v 1.25.2.2.2.10 2007/08/03 14:31:28 tony2001 Exp $ */
+/* $Id: spprintf.c,v 1.25.2.2.2.10.2.1 2007/10/01 15:22:41 iliaa Exp $ */
/* This is the spprintf implementation.
* It has emerged from apache snprintf. See original header:
@@ -600,6 +600,7 @@
case 'g':
+ case 'k':
case 'G':
case 'H':
switch(modifier) {
@@ -640,7 +641,7 @@
lconv = localeconv();
}
#endif
- s = php_gcvt(fp_num, precision,
*fmt=='H' ? '.' : LCONV_DECIMAL_POINT, (*fmt == 'G' || *fmt == 'H')?'E':'e',
&num_buf[1]);
+ s = php_gcvt(fp_num, precision,
(*fmt=='H' || *fmt == 'k') ? '.' : LCONV_DECIMAL_POINT, (*fmt == 'G' || *fmt ==
'H')?'E':'e', &num_buf[1]);
if (*s == '-')
prefix_char = *s++;
else if (print_sign)
http://cvs.php.net/viewvc.cgi/php-src/ext/json/json.c?r1=1.9.2.19.2.1&r2=1.9.2.19.2.2&diff_format=u
Index: php-src/ext/json/json.c
diff -u php-src/ext/json/json.c:1.9.2.19.2.1
php-src/ext/json/json.c:1.9.2.19.2.2
--- php-src/ext/json/json.c:1.9.2.19.2.1 Thu Sep 27 18:00:39 2007
+++ php-src/ext/json/json.c Mon Oct 1 15:22:41 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: json.c,v 1.9.2.19.2.1 2007/09/27 18:00:39 dmitry Exp $ */
+/* $Id: json.c,v 1.9.2.19.2.2 2007/10/01 15:22:41 iliaa Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -359,7 +359,7 @@
double dbl = Z_DVAL_P(val);
if (!zend_isinf(dbl) && !zend_isnan(dbl)) {
- len = spprintf(&d, 0, "%.*g", (int) EG(precision), dbl);
+ len = spprintf(&d, 0, "%.*k", (int) EG(precision), dbl);
smart_str_appendl(buf, d, len);
efree(d);
} else {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php