Fix function names prefix
Use Unicode version of GetFinalPathNameByHandle
Use EG(windows_version_info) instead of RtlGetVersion
Use the specified handle_id instead of STD_OUTPUT_HANDLE
Switch from stream name to stream resource
Allow running tests capturing only stdout and/or stderr
Add tests for stream_vt100_support function
Export Win32 console functions
Fix x64 build
Use zend_long instead of long long, use GetConsole instead of GetFinalPathNameByHandleW to check if a handle is a valid console stream
Always use zend_long on any platform
Use _get_osfhandle to determine the standard handle
Accept stream names
Raise warnings in case of invalid stream parameter
Return true if disabling VT100 support on a not-console/redirected stream or on old Windows versions
Remove php_win32_console_os_supports_vt100
Differentiate stdin vs stdout/stderr
Simplify setting flag
Allow avoid piping STDIN
Let stream_vt100_support accept only resources
Fix run-tests
Revert console flags in case of failure
Simplify logic of stream_vt100_support when setting the flag
Return true if succeeded, false otherwise
Drop support for STDIN
More comprehensive tests for stream_vt100_support
Remove old tests
Fix name of included file and use absolute paths
Enable ENABLE_VIRTUAL_TERMINAL_PROCESSING on Windows by default
Remove tests for stream_vt100_support
Split stream_vt100_support into stream_isatty+sapi_windows_vt100_support
Add tests for stream_isatty
Add tests for sapi_windows_vt100_support
Return null from stream_isatty is neither Windows nor Posix
Fallback to S_ISCHR if neither Windows nor Posix
Avoid defining argc since it's only used once
Better comment about php_win32_console_fileno_is_console
Use events instead of cNumberOfEvents
Do not restore previous console mode
We need to restore previous console mode on failing SetConsole calls only for STDIN
Don't configure STDOUT/STDERR on Windows with PHP_CLI_WIN32_NO_CONSOLE
This reverts commit 13acb7ec65.
With the added capability to negotiate application layer protocols
via the TLS ALPN extension userland needs a method to access the
negotiated protocol on a given stream. The reverted commit added
a new stream_socket_crypto_info() function for this purpose.
This original approach was discarded in favor of using the
already-existing stream_get_meta_data() API which specifically
exists for just such purposes and requires the addition of no new
functions.
stream when 0 is given as the value.
- PHP_STREAM_OPTION_WRITE_BUFFER no longer changes the chunk size in socket
streams.
- Added stream_set_chunk_size() function.
- Some signedness fixes.
- Test for commit r308474, now that it's possible to actually test it.
Local user streams must not be able to open(), URLs if allow_url_include is off
Implemented new function stream_is_local()
[
- stream_wrapper_register() extended with additional optional argument "flags"
of type long. This time only one flag is implemented
- STREAM_IS_URL, that means that userstream wrapper is remote (URL).
By default stream is local.
- stream_is_local() is a new function that accepts stream and tell if this
stream is local or remote (URL)
]
Register filters as resources when
instantiated by stream_filter_(ap|pre)pend().
Export php_stream_filter_flush() internal function to wind buffered data
out of a particular filter until consumed by a later filter or sent to
stream->readbuffer or stream->ops->write()
Disables a wrapper (user-defined or built-in) for the life of the request.
Add stream_wrapper_restore()
Restores the wrapper originally defined at the time the request started
to the protocol name mentioned.
You may then set options that affect streams operations for the whole script.
Added stream_socket_enable_crypto() which allows you to turn on or off a crypto
layer (eg: SSL/TLS) on stream, if supported by the underlying transport.
Registered a bunch of constants for that.