diff options
author | Adam Saponara <as@php.net> | 2017-08-04 01:59:22 -0400 |
---|---|---|
committer | Joe Watkins <krakjoe@php.net> | 2017-08-04 12:43:49 +0100 |
commit | db96b7c245907ef533c9dd7dc226b839df1a9341 (patch) | |
tree | e2acc875f77b4846cac584e97e0639789aa3598b /main/php_memory_streams.h | |
parent | a1a949d89c86c9687346b9e5e245b8a36333d0f1 (diff) | |
download | php-git-db96b7c245907ef533c9dd7dc226b839df1a9341.tar.gz |
Fix #75031: Support append mode in `php://temp` streams
This patch introduces a distinction between write mode and append
mode in `php://temp` and `php://memory` streams, achieving parity
with C stdio.
Diffstat (limited to 'main/php_memory_streams.h')
-rw-r--r-- | main/php_memory_streams.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/main/php_memory_streams.h b/main/php_memory_streams.h index f8989d261b..271a9276e0 100644 --- a/main/php_memory_streams.h +++ b/main/php_memory_streams.h @@ -25,9 +25,10 @@ #define PHP_STREAM_MAX_MEM 2 * 1024 * 1024 -#define TEMP_STREAM_DEFAULT 0 -#define TEMP_STREAM_READONLY 1 -#define TEMP_STREAM_TAKE_BUFFER 2 +#define TEMP_STREAM_DEFAULT 0x0 +#define TEMP_STREAM_READONLY 0x1 +#define TEMP_STREAM_TAKE_BUFFER 0x2 +#define TEMP_STREAM_APPEND 0x4 #define php_stream_memory_create(mode) _php_stream_memory_create((mode) STREAMS_CC) #define php_stream_memory_create_rel(mode) _php_stream_memory_create((mode) STREAMS_REL_CC) @@ -41,6 +42,7 @@ #define php_stream_temp_open(mode, max_memory_usage, buf, length) _php_stream_temp_open((mode), (max_memory_usage), (buf), (length) STREAMS_CC) BEGIN_EXTERN_C() + PHPAPI php_stream *_php_stream_memory_create(int mode STREAMS_DC); PHPAPI php_stream *_php_stream_memory_open(int mode, char *buf, size_t length STREAMS_DC); PHPAPI char *_php_stream_memory_get_buffer(php_stream *stream, size_t *length STREAMS_DC); @@ -48,6 +50,10 @@ PHPAPI char *_php_stream_memory_get_buffer(php_stream *stream, size_t *length ST PHPAPI php_stream *_php_stream_temp_create(int mode, size_t max_memory_usage STREAMS_DC); PHPAPI php_stream *_php_stream_temp_create_ex(int mode, size_t max_memory_usage, const char *tmpdir STREAMS_DC); PHPAPI php_stream *_php_stream_temp_open(int mode, size_t max_memory_usage, char *buf, size_t length STREAMS_DC); + +PHPAPI int php_stream_mode_from_str(const char *mode); +PHPAPI const char *_php_stream_mode_to_str(int mode); + END_EXTERN_C() extern PHPAPI php_stream_ops php_stream_memory_ops; |