Peter Kokot [Sat, 23 Feb 2019 22:39:21 +0000 (23:39 +0100)]
Remove unused PHP_AC_BROKEN_SNPRINTF m4 macro
The snprintf function is part of the C99 standard and newer systems in
most cases all support it as defined in the standard. However, some old
Windows and HP-UX systems the function behaves differently. These checks
were also removed and PHP now uses a replacement for the snprintf
function. With gradual transition to C99 usage as a minimum requirement,
it will also be able to be replaced to system's snprintf function
directly.
Additionally in this context the unused HAVE_VSNPRINTF and check for
vsnprintf have been removed. PHP uses its own vsnprintf implementation
for now until more reliable C99 compliant function can be used from the
C libraries.
Peter Kokot [Sat, 23 Feb 2019 23:35:36 +0000 (00:35 +0100)]
Remove deprecated PHP_EXTENSION m4 macro
The PHP_EXTENSION macro was used before the introduction of the updated
build system in the 9d9d39a0de3bec962c343051011f5a2ed7d7b242. The
extensions at that time possibly still used the Makefile.in and Automake
and the PHP_EXTENSION macro has been replaced with the PHP_NEW_EXTENSION
macro.
Today, the once deprecated macro can be removed in favor of only
PHP_NEW_EXTENSION macro.
This patch removes the checks to make a custom sprintf function
The ZEND_BROKEN_SPRINTF has been removed and the
hardcoded #define zend_sprintf sprintf is used.
The php_sprintf and zend_sprintf are now symbols to sprintf.
This patch now removes the custom PHP definitions of the php_sprintf and
zend_sprintf functions in favor of the C99 sprintf which is also
standardized in C89 already. Once, on some systems sprintf didn't behave
in same way.
Peter Kokot [Thu, 21 Feb 2019 21:46:41 +0000 (22:46 +0100)]
Replace Hebrew characters with escape sequences
calendar.c includes ISO-8859-8 encoded Hebrew characters, which may
cause compile errors, and is causing issues when saving file as UTF-8.
This patch replaces characters with appropriate escape sequences.
Nikita Popov [Fri, 22 Feb 2019 14:42:37 +0000 (15:42 +0100)]
Fix anon class handling in ext mode
Opcode order changes in 7.4 and the EXT_STMT is now declare the
DECLARE_ANON. Fix this by returning the opline from compile_class_decl
to avoid any fragile opcode searching.
Nikita Popov [Thu, 21 Feb 2019 15:59:30 +0000 (16:59 +0100)]
Stricter validation for popen mode argument on Windows
Context: The ext/standard/tests/file/popen_pclose_error-win32.phpt
test often fails under parallel testing, because the "is not recognized
as an internal or external command" message doesn't actually have a
guaranteed position in the output.
While looking into this, I noticed that this test on Windows tests
something very different (invalid comand) than on Linux (invalid mode).
Here I'm adjusting the Windows popen implementation so it immediately
fails on a `rw` mode, just like it does on Linux.
Joe Watkins [Thu, 21 Feb 2019 22:54:26 +0000 (23:54 +0100)]
While the compiler does not have the FBC set for zend_get_call_op, optimizer does, and so incorrectly results in ignoring these flags.
If someone has a better patch, please merge it ASAP, this appears to be correct as I and Nikita originally thought.
Revert "Revert "zend_get_call_op ignoring compiler flags zend_get_call_op will ignore ZEND_COMPILE_IGNORE_USER_FUNCTIONS and ZEND_COMPILE_IGNORE_USER_FUNCTIONS, breaking the intention of these flags""
Joe Watkins [Thu, 21 Feb 2019 21:41:13 +0000 (22:41 +0100)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Revert "zend_get_call_op ignoring compiler flags zend_get_call_op will ignore ZEND_COMPILE_IGNORE_USER_FUNCTIONS and ZEND_COMPILE_IGNORE_USER_FUNCTIONS, breaking the intention of these flags"
Joe Watkins [Thu, 21 Feb 2019 21:40:02 +0000 (22:40 +0100)]
Revert "zend_get_call_op ignoring compiler flags zend_get_call_op will ignore ZEND_COMPILE_IGNORE_USER_FUNCTIONS and ZEND_COMPILE_IGNORE_USER_FUNCTIONS, breaking the intention of these flags"
Peter Kokot [Wed, 20 Feb 2019 20:08:56 +0000 (21:08 +0100)]
Remove unused PDO_MYSQL_LIB_CHK m4 macro
This was once used by the ext/mysql extension named as MYSQL_LIB_CHK.
The call got removed via fd1578c196575c7e120a84ee030bb87c14a199b0. In
PDO this is not called anymore and can be removed.