diff --git a/UPGRADING b/UPGRADING index 3df40b98a33d..77d8463afe99 100644 --- a/UPGRADING +++ b/UPGRADING @@ -30,6 +30,14 @@ PHP 8.6 UPGRADE NOTES sessions. It only returns false now when the session data could not be encoded. This mainly happens with the default serialization handler if a key contains the pipe | character. + . When session.lazy_write is enabled and a session handler implements + SessionUpdateTimestampHandlerInterface, sessions that were read as empty + and remain empty at write time will now trigger updateTimestamp() instead + of write(). Previously, write() was always called for empty sessions + because session_encode() returned false, bypassing the lazy_write + comparison. Custom session handlers that rely on write() being called + with empty data (e.g. to destroy the session) should implement the same + logic in their updateTimestamp() method. - Standard: . Invalid mode values now throw in array_filter() instead of being silently diff --git a/ext/pcntl/pcntl.c b/ext/pcntl/pcntl.c index 24da439ff743..54d39a1eb0e7 100644 --- a/ext/pcntl/pcntl.c +++ b/ext/pcntl/pcntl.c @@ -846,15 +846,16 @@ PHP_FUNCTION(pcntl_signal) RETURN_THROWS(); } - /* Add the function name to our signal table */ - handle = zend_hash_index_update(&PCNTL_G(php_signal_table), signo, handle); - Z_TRY_ADDREF_P(handle); - + /* Register with the OS first so that on failure we don't record a handler that was never installed */ if (php_signal4(signo, pcntl_signal_handler, (int) restart_syscalls, 1) == (void *)SIG_ERR) { PCNTL_G(last_error) = errno; php_error_docref(NULL, E_WARNING, "Error assigning signal"); RETURN_FALSE; } + + /* Add the function name to our signal table */ + handle = zend_hash_index_update(&PCNTL_G(php_signal_table), signo, handle); + Z_TRY_ADDREF_P(handle); RETURN_TRUE; } /* }}} */ diff --git a/ext/standard/head.c b/ext/standard/head.c index 76ba89dc0171..797d8d66c56a 100644 --- a/ext/standard/head.c +++ b/ext/standard/head.c @@ -260,11 +260,7 @@ static void php_setcookie_common(INTERNAL_FUNCTION_PARAMETERS, bool is_raw) } } - if (php_setcookie(name, value, expires, path, domain, secure, httponly, samesite, partitioned, !is_raw) == SUCCESS) { - RETVAL_TRUE; - } else { - RETVAL_FALSE; - } + RETVAL_BOOL(php_setcookie(name, value, expires, path, domain, secure, httponly, samesite, partitioned, !is_raw) == SUCCESS); if (options) { cleanup: @@ -328,11 +324,7 @@ PHP_FUNCTION(headers_sent) break; } - if (SG(headers_sent)) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } + RETURN_BOOL(SG(headers_sent)); } /* }}} */ diff --git a/ext/standard/tests/array/in_array/in_array_variation1_bool.phpt b/ext/standard/tests/array/in_array/in_array_variation1_bool.phpt new file mode 100644 index 000000000000..9b9475dec90e --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_bool.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with booleans +--FILE-- + $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string '4' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- null -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'ab' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- enum Sample::B -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array/in_array_variation1_data.inc b/ext/standard/tests/array/in_array/in_array_variation1_data.inc new file mode 100644 index 000000000000..150b8c4d3194 --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_data.inc @@ -0,0 +1,28 @@ + 4, + "string '4'" => "4", + "float 4.00" => 4.00, + "string 'b'" => "b", + "string '5'" => "5", + "integer -2" => -2, + "float -2.0" => -2.0, + "float -2.98989" => -2.98989, + "string '-.9'" => "-.9", + "string 'True'" => "True", + "empty string" => "", + "empty array" => [], + "null" => NULL, + "string 'ab'" => "ab", + "string 'abcd'" => "abcd", + "float 0.0" => 0.0, + "integer -0" => -0, + "string with null bytes" => "abcd\x00abcd\x00abcd", + "enum Sample::A" => Sample::A, + "enum Sample::B" => Sample::B, +]; diff --git a/ext/standard/tests/array/in_array/in_array_variation1_empty.phpt b/ext/standard/tests/array/in_array/in_array_variation1_empty.phpt new file mode 100644 index 000000000000..e661dcf299b9 --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_empty.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with empty string and array +--FILE-- + $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '4' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- empty array -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- null -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'ab' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::B -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array/in_array_variation1_enum.phpt b/ext/standard/tests/array/in_array/in_array_variation1_enum.phpt new file mode 100644 index 000000000000..ed21aa52b26a --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_enum.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with enum values +--FILE-- + $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '4' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- null -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'ab' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- enum Sample::B -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array/in_array_variation1_mixed.phpt b/ext/standard/tests/array/in_array/in_array_variation1_mixed.phpt new file mode 100644 index 000000000000..2655484ce7ea --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_mixed.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with mixed string/int keys +--FILE-- + "A", 2 => "B", "C" => 3, 4 => 4, "one" => 1, "" => NULL, "b", "ab", "abcd"]; + +foreach ($values as $desc => $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- string '4' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- string '5' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- null -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- string 'ab' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- string 'abcd' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- float 0.0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::B -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array/in_array_variation1_negative.phpt b/ext/standard/tests/array/in_array/in_array_variation1_negative.phpt new file mode 100644 index 000000000000..90c30f40f187 --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_negative.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with negative numbers/floats +--FILE-- + "neg0.005", 2 => "float2", "-.9" => -.9]; + +foreach ($values as $desc => $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '4' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- float -2.0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- null -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'ab' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::B -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array/in_array_variation1_nested.phpt b/ext/standard/tests/array/in_array/in_array_variation1_nested.phpt new file mode 100644 index 000000000000..bfbe0dde347d --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_nested.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with nested arrays +--FILE-- + 3], "one" => 1, "5" => 5]; + +foreach ($values as $desc => $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- string '4' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- null -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'ab' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::B -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array/in_array_variation1_null_bytes.phpt b/ext/standard/tests/array/in_array/in_array_variation1_null_bytes.phpt new file mode 100644 index 000000000000..0b4369b241a3 --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_null_bytes.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with null byte strings +--FILE-- + $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '4' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- null -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'ab' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- enum Sample::A -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::B -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array/in_array_variation1_special_chars.phpt b/ext/standard/tests/array/in_array/in_array_variation1_special_chars.phpt new file mode 100644 index 000000000000..d424093c86ed --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_special_chars.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with special character strings +--FILE-- + $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '4' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- null -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'ab' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::B -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array/in_array_variation1_zero.phpt b/ext/standard/tests/array/in_array/in_array_variation1_zero.phpt new file mode 100644 index 000000000000..695b417eaa99 --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_variation1_zero.phpt @@ -0,0 +1,118 @@ +--TEST-- +Test in_array() function : usage variations - haystack with zero element +--FILE-- + $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $haystack)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $haystack, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '4' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- null -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'ab' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- string with null bytes -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) +-- enum Sample::B -- +in_array() strict=false +bool(false) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array_variation2.phpt b/ext/standard/tests/array/in_array/in_array_variation2.phpt similarity index 100% rename from ext/standard/tests/array/in_array_variation2.phpt rename to ext/standard/tests/array/in_array/in_array_variation2.phpt diff --git a/ext/standard/tests/array/in_array_variation3.phpt b/ext/standard/tests/array/in_array/in_array_variation3.phpt similarity index 100% rename from ext/standard/tests/array/in_array_variation3.phpt rename to ext/standard/tests/array/in_array/in_array_variation3.phpt diff --git a/ext/standard/tests/array/in_array_variation4.phpt b/ext/standard/tests/array/in_array/in_array_variation4.phpt similarity index 100% rename from ext/standard/tests/array/in_array_variation4.phpt rename to ext/standard/tests/array/in_array/in_array_variation4.phpt diff --git a/ext/standard/tests/array/in_array/in_array_with_ref.phpt b/ext/standard/tests/array/in_array/in_array_with_ref.phpt new file mode 100644 index 000000000000..e2134dda5a82 --- /dev/null +++ b/ext/standard/tests/array/in_array/in_array_with_ref.phpt @@ -0,0 +1,125 @@ +--TEST-- +in_array() with references +--FILE-- + $needle) { + echo "-- $desc --\n"; + echo "in_array() strict=false\n"; + var_dump(in_array($needle, $array)); + echo "in_array() strict=true\n"; + var_dump(in_array($needle, $array, TRUE)); +} + +?> +--EXPECT-- +-- integer 4 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- string '4' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float 4.00 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'b' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string '5' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- integer -2 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float -2.0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float -2.98989 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string '-.9' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'True' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- empty string -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- empty array -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- null -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- string 'ab' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string 'abcd' -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- float 0.0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- integer -0 -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- string with null bytes -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) +-- enum Sample::A -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(true) +-- enum Sample::B -- +in_array() strict=false +bool(true) +in_array() strict=true +bool(false) diff --git a/ext/standard/tests/array/in_array_variation1.phpt b/ext/standard/tests/array/in_array_variation1.phpt deleted file mode 100644 index 0c88a4533206..000000000000 --- a/ext/standard/tests/array/in_array_variation1.phpt +++ /dev/null @@ -1,635 +0,0 @@ ---TEST-- -Test in_array() function : usage variations - different needdle values ---FILE-- - "A", 2 => "B", "C" => 3, 4 => 4, "one" => 1, "" => NULL, "b", "ab", "abcd"), - array(4, array(1, 2 => 3), "one" => 1, "5" => 5 ), - array(-1, -2, -3, -4, -2.989888, "-0.005" => "neg0.005", 2 => "float2", "-.9" => -.9), - array(TRUE, FALSE), - array("", array()), - array("abcd\x00abcd\x00abcd"), - array("abcd\tabcd\nabcd\rabcd\0abcdefghij") -); - -$array_compare = array ( - 4, - "4", - 4.00, - "b", - "5", - -2, - -2.0, - -2.98989, - "-.9", - "True", - "", - array(), - NULL, - "ab", - "abcd", - 0.0, - -0, - "abcd\x00abcd\x00abcd" -); -/* loop to check if elements in $array_compare exist in $arrays - using in_array() */ -$counter = 1; -foreach($arrays as $array) { - foreach($array_compare as $compare) { - echo "-- Iteration $counter --\n"; - //strict option OFF - var_dump(in_array($compare,$array)); - //strict option ON - var_dump(in_array($compare,$array,TRUE)); - //strict option OFF - var_dump(in_array($compare,$array,FALSE)); - $counter++; - } -} - -echo "Done\n"; -?> ---EXPECT-- -*** Testing in_array() with different needle values *** --- Iteration 1 -- -bool(false) -bool(false) -bool(false) --- Iteration 2 -- -bool(false) -bool(false) -bool(false) --- Iteration 3 -- -bool(false) -bool(false) -bool(false) --- Iteration 4 -- -bool(false) -bool(false) -bool(false) --- Iteration 5 -- -bool(false) -bool(false) -bool(false) --- Iteration 6 -- -bool(false) -bool(false) -bool(false) --- Iteration 7 -- -bool(false) -bool(false) -bool(false) --- Iteration 8 -- -bool(false) -bool(false) -bool(false) --- Iteration 9 -- -bool(false) -bool(false) -bool(false) --- Iteration 10 -- -bool(false) -bool(false) -bool(false) --- Iteration 11 -- -bool(false) -bool(false) -bool(false) --- Iteration 12 -- -bool(false) -bool(false) -bool(false) --- Iteration 13 -- -bool(true) -bool(false) -bool(true) --- Iteration 14 -- -bool(false) -bool(false) -bool(false) --- Iteration 15 -- -bool(false) -bool(false) -bool(false) --- Iteration 16 -- -bool(true) -bool(false) -bool(true) --- Iteration 17 -- -bool(true) -bool(true) -bool(true) --- Iteration 18 -- -bool(false) -bool(false) -bool(false) --- Iteration 19 -- -bool(true) -bool(true) -bool(true) --- Iteration 20 -- -bool(true) -bool(false) -bool(true) --- Iteration 21 -- -bool(true) -bool(false) -bool(true) --- Iteration 22 -- -bool(true) -bool(true) -bool(true) --- Iteration 23 -- -bool(false) -bool(false) -bool(false) --- Iteration 24 -- -bool(false) -bool(false) -bool(false) --- Iteration 25 -- -bool(false) -bool(false) -bool(false) --- Iteration 26 -- -bool(false) -bool(false) -bool(false) --- Iteration 27 -- -bool(false) -bool(false) -bool(false) --- Iteration 28 -- -bool(false) -bool(false) -bool(false) --- Iteration 29 -- -bool(true) -bool(false) -bool(true) --- Iteration 30 -- -bool(true) -bool(false) -bool(true) --- Iteration 31 -- -bool(true) -bool(true) -bool(true) --- Iteration 32 -- -bool(true) -bool(true) -bool(true) --- Iteration 33 -- -bool(true) -bool(true) -bool(true) --- Iteration 34 -- -bool(true) -bool(false) -bool(true) --- Iteration 35 -- -bool(true) -bool(false) -bool(true) --- Iteration 36 -- -bool(false) -bool(false) -bool(false) --- Iteration 37 -- -bool(true) -bool(true) -bool(true) --- Iteration 38 -- -bool(true) -bool(false) -bool(true) --- Iteration 39 -- -bool(true) -bool(false) -bool(true) --- Iteration 40 -- -bool(false) -bool(false) -bool(false) --- Iteration 41 -- -bool(true) -bool(false) -bool(true) --- Iteration 42 -- -bool(false) -bool(false) -bool(false) --- Iteration 43 -- -bool(false) -bool(false) -bool(false) --- Iteration 44 -- -bool(false) -bool(false) -bool(false) --- Iteration 45 -- -bool(false) -bool(false) -bool(false) --- Iteration 46 -- -bool(false) -bool(false) -bool(false) --- Iteration 47 -- -bool(false) -bool(false) -bool(false) --- Iteration 48 -- -bool(false) -bool(false) -bool(false) --- Iteration 49 -- -bool(false) -bool(false) -bool(false) --- Iteration 50 -- -bool(false) -bool(false) -bool(false) --- Iteration 51 -- -bool(false) -bool(false) -bool(false) --- Iteration 52 -- -bool(false) -bool(false) -bool(false) --- Iteration 53 -- -bool(false) -bool(false) -bool(false) --- Iteration 54 -- -bool(false) -bool(false) -bool(false) --- Iteration 55 -- -bool(false) -bool(false) -bool(false) --- Iteration 56 -- -bool(false) -bool(false) -bool(false) --- Iteration 57 -- -bool(false) -bool(false) -bool(false) --- Iteration 58 -- -bool(false) -bool(false) -bool(false) --- Iteration 59 -- -bool(false) -bool(false) -bool(false) --- Iteration 60 -- -bool(true) -bool(true) -bool(true) --- Iteration 61 -- -bool(true) -bool(false) -bool(true) --- Iteration 62 -- -bool(false) -bool(false) -bool(false) --- Iteration 63 -- -bool(true) -bool(false) -bool(true) --- Iteration 64 -- -bool(false) -bool(false) -bool(false) --- Iteration 65 -- -bool(false) -bool(false) -bool(false) --- Iteration 66 -- -bool(false) -bool(false) -bool(false) --- Iteration 67 -- -bool(false) -bool(false) -bool(false) --- Iteration 68 -- -bool(false) -bool(false) -bool(false) --- Iteration 69 -- -bool(false) -bool(false) -bool(false) --- Iteration 70 -- -bool(false) -bool(false) -bool(false) --- Iteration 71 -- -bool(false) -bool(false) -bool(false) --- Iteration 72 -- -bool(false) -bool(false) -bool(false) --- Iteration 73 -- -bool(true) -bool(false) -bool(true) --- Iteration 74 -- -bool(true) -bool(false) -bool(true) --- Iteration 75 -- -bool(true) -bool(false) -bool(true) --- Iteration 76 -- -bool(true) -bool(false) -bool(true) --- Iteration 77 -- -bool(true) -bool(false) -bool(true) --- Iteration 78 -- -bool(true) -bool(false) -bool(true) --- Iteration 79 -- -bool(true) -bool(false) -bool(true) --- Iteration 80 -- -bool(true) -bool(false) -bool(true) --- Iteration 81 -- -bool(true) -bool(false) -bool(true) --- Iteration 82 -- -bool(true) -bool(false) -bool(true) --- Iteration 83 -- -bool(true) -bool(false) -bool(true) --- Iteration 84 -- -bool(true) -bool(false) -bool(true) --- Iteration 85 -- -bool(true) -bool(false) -bool(true) --- Iteration 86 -- -bool(true) -bool(false) -bool(true) --- Iteration 87 -- -bool(true) -bool(false) -bool(true) --- Iteration 88 -- -bool(true) -bool(false) -bool(true) --- Iteration 89 -- -bool(true) -bool(false) -bool(true) --- Iteration 90 -- -bool(true) -bool(false) -bool(true) --- Iteration 91 -- -bool(false) -bool(false) -bool(false) --- Iteration 92 -- -bool(false) -bool(false) -bool(false) --- Iteration 93 -- -bool(false) -bool(false) -bool(false) --- Iteration 94 -- -bool(false) -bool(false) -bool(false) --- Iteration 95 -- -bool(false) -bool(false) -bool(false) --- Iteration 96 -- -bool(false) -bool(false) -bool(false) --- Iteration 97 -- -bool(false) -bool(false) -bool(false) --- Iteration 98 -- -bool(false) -bool(false) -bool(false) --- Iteration 99 -- -bool(false) -bool(false) -bool(false) --- Iteration 100 -- -bool(false) -bool(false) -bool(false) --- Iteration 101 -- -bool(true) -bool(true) -bool(true) --- Iteration 102 -- -bool(true) -bool(true) -bool(true) --- Iteration 103 -- -bool(true) -bool(false) -bool(true) --- Iteration 104 -- -bool(false) -bool(false) -bool(false) --- Iteration 105 -- -bool(false) -bool(false) -bool(false) --- Iteration 106 -- -bool(false) -bool(false) -bool(false) --- Iteration 107 -- -bool(false) -bool(false) -bool(false) --- Iteration 108 -- -bool(false) -bool(false) -bool(false) --- Iteration 109 -- -bool(false) -bool(false) -bool(false) --- Iteration 110 -- -bool(false) -bool(false) -bool(false) --- Iteration 111 -- -bool(false) -bool(false) -bool(false) --- Iteration 112 -- -bool(false) -bool(false) -bool(false) --- Iteration 113 -- -bool(false) -bool(false) -bool(false) --- Iteration 114 -- -bool(false) -bool(false) -bool(false) --- Iteration 115 -- -bool(false) -bool(false) -bool(false) --- Iteration 116 -- -bool(false) -bool(false) -bool(false) --- Iteration 117 -- -bool(false) -bool(false) -bool(false) --- Iteration 118 -- -bool(false) -bool(false) -bool(false) --- Iteration 119 -- -bool(false) -bool(false) -bool(false) --- Iteration 120 -- -bool(false) -bool(false) -bool(false) --- Iteration 121 -- -bool(false) -bool(false) -bool(false) --- Iteration 122 -- -bool(false) -bool(false) -bool(false) --- Iteration 123 -- -bool(false) -bool(false) -bool(false) --- Iteration 124 -- -bool(false) -bool(false) -bool(false) --- Iteration 125 -- -bool(false) -bool(false) -bool(false) --- Iteration 126 -- -bool(true) -bool(true) -bool(true) --- Iteration 127 -- -bool(false) -bool(false) -bool(false) --- Iteration 128 -- -bool(false) -bool(false) -bool(false) --- Iteration 129 -- -bool(false) -bool(false) -bool(false) --- Iteration 130 -- -bool(false) -bool(false) -bool(false) --- Iteration 131 -- -bool(false) -bool(false) -bool(false) --- Iteration 132 -- -bool(false) -bool(false) -bool(false) --- Iteration 133 -- -bool(false) -bool(false) -bool(false) --- Iteration 134 -- -bool(false) -bool(false) -bool(false) --- Iteration 135 -- -bool(false) -bool(false) -bool(false) --- Iteration 136 -- -bool(false) -bool(false) -bool(false) --- Iteration 137 -- -bool(false) -bool(false) -bool(false) --- Iteration 138 -- -bool(false) -bool(false) -bool(false) --- Iteration 139 -- -bool(false) -bool(false) -bool(false) --- Iteration 140 -- -bool(false) -bool(false) -bool(false) --- Iteration 141 -- -bool(false) -bool(false) -bool(false) --- Iteration 142 -- -bool(false) -bool(false) -bool(false) --- Iteration 143 -- -bool(false) -bool(false) -bool(false) --- Iteration 144 -- -bool(false) -bool(false) -bool(false) -Done diff --git a/ext/standard/tests/array/in_array_with_ref.phpt b/ext/standard/tests/array/in_array_with_ref.phpt deleted file mode 100644 index 2ad3667d2326..000000000000 --- a/ext/standard/tests/array/in_array_with_ref.phpt +++ /dev/null @@ -1,14 +0,0 @@ ---TEST-- -in_array() with references ---FILE-- - ---EXPECT-- -bool(true) -bool(true) diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c index 95e2e2e8754b..7e184421aeeb 100644 --- a/ext/xsl/xsltprocessor.c +++ b/ext/xsl/xsltprocessor.c @@ -703,11 +703,7 @@ PHP_METHOD(XSLTProcessor, removeParameter) RETURN_THROWS(); } intern = Z_XSL_P(id); - if (zend_hash_del(intern->parameter, key) == SUCCESS) { - RETVAL_TRUE; - } else { - RETVAL_FALSE; - } + RETVAL_BOOL(zend_hash_del(intern->parameter, key) == SUCCESS); zend_string_release_ex(key, false); } /* }}} end XSLTProcessor::removeParameter */ diff --git a/sapi/cgi/Makefile.frag b/sapi/cgi/Makefile.frag index 79e2afec2545..eeadc7d3864c 100644 --- a/sapi/cgi/Makefile.frag +++ b/sapi/cgi/Makefile.frag @@ -6,7 +6,7 @@ $(SAPI_CGI_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FASTCGI_OBJS) $(PH install-cgi: $(SAPI_CGI_PATH) @echo "Installing PHP CGI binary: $(INSTALL_ROOT)$(bindir)/" @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir) - @$(INSTALL) -m 0755 $(SAPI_CGI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php-cgi$(program_suffix)$(EXEEXT) + @$(LIBTOOL) --mode=install $(INSTALL) -m 0755 $(SAPI_CGI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php-cgi$(program_suffix)$(EXEEXT) @echo "Installing PHP CGI man page: $(INSTALL_ROOT)$(mandir)/man1/" @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1 @$(INSTALL_DATA) sapi/cgi/php-cgi.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)php-cgi$(program_suffix).1 diff --git a/sapi/cli/Makefile.frag b/sapi/cli/Makefile.frag index aa1d642b9cd6..52150d92d528 100644 --- a/sapi/cli/Makefile.frag +++ b/sapi/cli/Makefile.frag @@ -6,7 +6,7 @@ $(SAPI_CLI_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_CLI_OBJS) install-cli: $(SAPI_CLI_PATH) @echo "Installing PHP CLI binary: $(INSTALL_ROOT)$(bindir)/" @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir) - @$(INSTALL) -m 0755 $(SAPI_CLI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT) + @$(LIBTOOL) --mode=install $(INSTALL) -m 0755 $(SAPI_CLI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT) @echo "Installing PHP CLI man page: $(INSTALL_ROOT)$(mandir)/man1/" @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1 @$(INSTALL_DATA) sapi/cli/php.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)php$(program_suffix).1 diff --git a/sapi/fpm/Makefile.frag b/sapi/fpm/Makefile.frag index c6a290f9d59b..8c90e8c00daa 100644 --- a/sapi/fpm/Makefile.frag +++ b/sapi/fpm/Makefile.frag @@ -8,7 +8,7 @@ install-fpm: $(SAPI_FPM_PATH) @$(mkinstalldirs) $(INSTALL_ROOT)$(sbindir) @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/log @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/run - @$(INSTALL) -m 0755 $(SAPI_FPM_PATH) $(INSTALL_ROOT)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT) + @$(LIBTOOL) --mode=install $(INSTALL) -m 0755 $(SAPI_FPM_PATH) $(INSTALL_ROOT)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT) @if test -f "$(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf"; then \ echo "Installing PHP FPM defconfig: skipping"; \ diff --git a/sapi/litespeed/Makefile.frag b/sapi/litespeed/Makefile.frag index 2010d8d6235f..d33d467c7def 100644 --- a/sapi/litespeed/Makefile.frag +++ b/sapi/litespeed/Makefile.frag @@ -6,4 +6,4 @@ $(SAPI_LITESPEED_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_LITESPEED_OB install-litespeed: $(SAPI_LITESPEED_PATH) @echo "Installing PHP LiteSpeed binary: $(INSTALL_ROOT)$(bindir)/" @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir) - @$(INSTALL) -m 0755 $(SAPI_LITESPEED_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)lsphp$(program_suffix) + @$(LIBTOOL) --mode=install $(INSTALL) -m 0755 $(SAPI_LITESPEED_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)lsphp$(program_suffix) diff --git a/sapi/phpdbg/Makefile.frag b/sapi/phpdbg/Makefile.frag index 3b09f6a2c885..a330cf7b6dac 100644 --- a/sapi/phpdbg/Makefile.frag +++ b/sapi/phpdbg/Makefile.frag @@ -25,7 +25,7 @@ install-phpdbg: $(SAPI_PHPDBG_PATH) @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir) @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/log @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/run - @$(INSTALL) -m 0755 $(SAPI_PHPDBG_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)phpdbg$(program_suffix)$(EXEEXT) + @$(LIBTOOL) --mode=install $(INSTALL) -m 0755 $(SAPI_PHPDBG_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)phpdbg$(program_suffix)$(EXEEXT) @echo "Installing phpdbg man page: $(INSTALL_ROOT)$(mandir)/man1/" @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1 @$(INSTALL_DATA) sapi/phpdbg/phpdbg.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phpdbg$(program_suffix).1