pajoye Mon, 12 Apr 2010 13:10:05 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=297895
Log: - [doc] merge stream_set_read_buffer, equivalent of stream_set_write_buffer for read operations. Fixing possible bad effects while reading devices Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/standard/basic_functions.c U php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.c U php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.h U php/php-src/branches/PHP_5_3/ext/standard/var_unserializer.c Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2010-04-12 13:01:43 UTC (rev 297894) +++ php/php-src/branches/PHP_5_3/NEWS 2010-04-12 13:10:05 UTC (rev 297895) @@ -4,6 +4,8 @@ - Upgraded bundled sqlite to version 3.6.23.1. (Ilia) - Upgraded bundled PCRE to version 8.02. (Ilia) +- Added stream_set_read_buffer, allows to set the buffer for read operation. + (Pierre). - Added stream filter support to mcrypt extension (ported from mcrypt_filter). (Stas) - Added full_special_chars filter to ext/filter (Rasmus) Modified: php/php-src/branches/PHP_5_3/ext/standard/basic_functions.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/basic_functions.c 2010-04-12 13:01:43 UTC (rev 297894) +++ php/php-src/branches/PHP_5_3/ext/standard/basic_functions.c 2010-04-12 13:10:05 UTC (rev 297895) @@ -2100,6 +2100,11 @@ ZEND_END_ARG_INFO() #endif +ZEND_BEGIN_ARG_INFO(arginfo_stream_set_read_buffer, 0) + ZEND_ARG_INFO(0, fp) + ZEND_ARG_INFO(0, buffer) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO(arginfo_stream_set_write_buffer, 0) ZEND_ARG_INFO(0, fp) ZEND_ARG_INFO(0, buffer) @@ -3104,6 +3109,7 @@ PHP_FE(fputcsv, arginfo_fputcsv) PHP_FE(flock, arginfo_flock) PHP_FE(get_meta_tags, arginfo_get_meta_tags) + PHP_FE(stream_set_read_buffer, arginfo_stream_set_read_buffer) PHP_FE(stream_set_write_buffer, arginfo_stream_set_write_buffer) PHP_FALIAS(set_file_buffer, stream_set_write_buffer, arginfo_stream_set_write_buffer) Modified: php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.c 2010-04-12 13:01:43 UTC (rev 297894) +++ php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.c 2010-04-12 13:10:05 UTC (rev 297895) @@ -1372,16 +1372,8 @@ size_t buff; php_stream *stream; - switch (ZEND_NUM_ARGS()) { - case 2: - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &arg1, &arg2) == FAILURE) { - RETURN_FALSE; - } - break; - default: - WRONG_PARAM_COUNT; - /* NOTREACHED */ - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &arg1, &arg2) == FAILURE) { + RETURN_FALSE; } php_stream_from_zval(stream, &arg1); @@ -1399,6 +1391,35 @@ } /* }}} */ +/* {{{ proto int stream_set_read_buffer(resource fp, int buffer) + Set file read buffer */ +PHP_FUNCTION(stream_set_read_buffer) +{ + zval *arg1; + int ret; + long arg2; + size_t buff; + php_stream *stream; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &arg1, &arg2) == FAILURE) { + RETURN_FALSE; + } + + php_stream_from_zval(stream, &arg1); + + buff = arg2; + + /* if buff is 0 then set to non-buffered */ + if (buff == 0) { + ret = php_stream_set_option(stream, PHP_STREAM_OPTION_READ_BUFFER, PHP_STREAM_BUFFER_NONE, NULL); + } else { + ret = php_stream_set_option(stream, PHP_STREAM_OPTION_READ_BUFFER, PHP_STREAM_BUFFER_FULL, &buff); + } + + RETURN_LONG(ret == 0 ? 0 : EOF); +} +/* }}} */ + /* {{{ proto int stream_socket_enable_crypto(resource stream, bool enable [, int cryptokind [, resource sessionstream]]) Enable or disable a specific kind of crypto on the stream */ PHP_FUNCTION(stream_socket_enable_crypto) Modified: php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.h =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.h 2010-04-12 13:01:43 UTC (rev 297894) +++ php/php-src/branches/PHP_5_3/ext/standard/streamsfuncs.h 2010-04-12 13:10:05 UTC (rev 297895) @@ -36,6 +36,7 @@ PHP_FUNCTION(stream_set_blocking); PHP_FUNCTION(stream_select); PHP_FUNCTION(stream_set_timeout); +PHP_FUNCTION(stream_set_read_buffer); PHP_FUNCTION(stream_set_write_buffer); PHP_FUNCTION(stream_get_transports); PHP_FUNCTION(stream_get_wrappers); Modified: php/php-src/branches/PHP_5_3/ext/standard/var_unserializer.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/var_unserializer.c 2010-04-12 13:01:43 UTC (rev 297894) +++ php/php-src/branches/PHP_5_3/ext/standard/var_unserializer.c 2010-04-12 13:10:05 UTC (rev 297895) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Mon Jan 11 14:20:08 2010 */ +/* Generated by re2c 0.13.5 on Mon Apr 12 10:11:22 2010 */ #line 1 "ext/standard/var_unserializer.re" /* +----------------------------------------------------------------------+
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php