diff options
| -rw-r--r-- | ext/json/json.c | 2 | ||||
| -rw-r--r-- | main/snprintf.c | 3 | ||||
| -rw-r--r-- | main/spprintf.c | 3 |
3 files changed, 5 insertions, 3 deletions
diff --git a/ext/json/json.c b/ext/json/json.c index b3e7fa13a5..79c6fd5b9e 100644 --- a/ext/json/json.c +++ b/ext/json/json.c @@ -359,7 +359,7 @@ static void json_encode_r(smart_str *buf, zval *val TSRMLS_DC) /* {{{ */ 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 { diff --git a/main/snprintf.c b/main/snprintf.c index 853a078885..54820e804e 100644 --- a/main/snprintf.c +++ b/main/snprintf.c @@ -1004,6 +1004,7 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) / case 'g': + case 'k': case 'G': case 'H': switch(modifier) { @@ -1045,7 +1046,7 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) / 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) { diff --git a/main/spprintf.c b/main/spprintf.c index 68ff792cdc..ba88045a50 100644 --- a/main/spprintf.c +++ b/main/spprintf.c @@ -600,6 +600,7 @@ static void xbuf_format_converter(smart_str *xbuf, const char *fmt, va_list ap) case 'g': + case 'k': case 'G': case 'H': switch(modifier) { @@ -640,7 +641,7 @@ static void xbuf_format_converter(smart_str *xbuf, const char *fmt, va_list ap) 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) |
