Remove special handling of doubles and escape them as usual instead.
- Standard:
. Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions).
(John Stevenson)
+ . Fixed bug #77608 (http_build_query doesn't encode "+" in a float number).
+ (Nikita)
07 Feb 2019, PHP 7.2.15
case IS_TRUE:
smart_str_appendl(formstr, "1", sizeof("1")-1);
break;
- case IS_DOUBLE:
- {
- char *ekey;
- size_t ekey_len;
- ekey_len = spprintf(&ekey, 0, "%.*G", (int) EG(precision), Z_DVAL_P(zdata));
- smart_str_appendl(formstr, ekey, ekey_len);
- efree(ekey);
- }
- break;
default:
{
zend_string *ekey;
--- /dev/null
+--TEST--
+Bug #77608: http_build_query doesn't encode "+" in a float number
+--FILE--
+<?php
+
+$a = ["x" => 1E+14, "y" => "1E+14"];
+echo http_build_query($a);
+
+?>
+--EXPECT--
+x=1.0E%2B14&y=1E%2B14