johannes Tue Nov 20 22:16:20 2007 UTC
Added files:
/php-src/ext/standard/tests/file stream_supports_lock.phpt
Modified files:
/php-src/ext/standard streamsfuncs.c streamsfuncs.h
basic_functions.c
Log:
Add stream_supports_lock() function (Benjamin Schulz)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.109&r2=1.110&diff_format=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.109
php-src/ext/standard/streamsfuncs.c:1.110
--- php-src/ext/standard/streamsfuncs.c:1.109 Thu Nov 8 13:29:38 2007
+++ php-src/ext/standard/streamsfuncs.c Tue Nov 20 22:16:19 2007
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.c,v 1.109 2007/11/08 13:29:38 dmitry Exp $ */
+/* $Id: streamsfuncs.c,v 1.110 2007/11/20 22:16:19 johannes Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -1677,6 +1677,26 @@
}
/* }}} */
+/* {{{ proto bool stream_supports_lock(resource stream)
+ Tells wether the stream supports locking through flock(). */
+PHP_FUNCTION(stream_supports_lock)
+{
+ php_stream *stream;
+ zval *zsrc;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zsrc) ==
FAILURE) {
+ RETURN_FALSE;
+ }
+
+ php_stream_from_zval(stream, &zsrc);
+
+ if (!php_stream_supports_lock(stream)) {
+ RETURN_FALSE;
+ }
+
+ RETURN_TRUE;
+}
+
#ifdef HAVE_SHUTDOWN
/* {{{ proto int stream_socket_shutdown(resource stream, int how) U
causes all or part of a full-duplex connection on the socket associated
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.h?r1=1.20&r2=1.21&diff_format=u
Index: php-src/ext/standard/streamsfuncs.h
diff -u php-src/ext/standard/streamsfuncs.h:1.20
php-src/ext/standard/streamsfuncs.h:1.21
--- php-src/ext/standard/streamsfuncs.h:1.20 Tue Jul 3 10:22:55 2007
+++ php-src/ext/standard/streamsfuncs.h Tue Nov 20 22:16:20 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.h,v 1.20 2007/07/03 10:22:55 dmitry Exp $ */
+/* $Id: streamsfuncs.h,v 1.21 2007/11/20 22:16:20 johannes Exp $ */
/* Flags for stream_socket_client */
#define PHP_STREAM_CLIENT_PERSISTENT 1
@@ -58,6 +58,7 @@
PHP_FUNCTION(stream_socket_pair);
PHP_FUNCTION(stream_resolve_include_path);
PHP_FUNCTION(stream_is_local);
+PHP_FUNCTION(stream_supports_lock);
/*
* Local variables:
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.883&r2=1.884&diff_format=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.883
php-src/ext/standard/basic_functions.c:1.884
--- php-src/ext/standard/basic_functions.c:1.883 Thu Nov 15 13:11:48 2007
+++ php-src/ext/standard/basic_functions.c Tue Nov 20 22:16:20 2007
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: basic_functions.c,v 1.883 2007/11/15 13:11:48 bjori Exp $ */
+/* $Id: basic_functions.c,v 1.884 2007/11/20 22:16:20 johannes Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -2310,6 +2310,11 @@
ZEND_END_ARG_INFO()
static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_supports_lock, 0, 0, 1)
+ ZEND_ARG_INFO(0, stream)
+ZEND_END_ARG_INFO()
+
+static
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_select, 0, 0, 4)
ZEND_ARG_INFO(1, read_streams) /* ARRAY_INFO(1, read_streams, 1) */
ZEND_ARG_INFO(1, write_streams) /* ARRAY_INFO(1, write_streams, 1) */
@@ -3532,6 +3537,7 @@
#endif
PHP_FE(stream_copy_to_stream,
arginfo_stream_copy_to_stream)
PHP_FE(stream_get_contents,
arginfo_stream_get_contents)
+ PHP_FE(stream_supports_lock,
arginfo_stream_supports_lock)
PHP_FE(stream_resolve_include_path,
arginfo_stream_resolve_include_path)
PHP_FE(fgetcsv,
arginfo_fgetcsv)
PHP_FE(fputcsv,
arginfo_fputcsv)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/stream_supports_lock.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/stream_supports_lock.phpt
+++ php-src/ext/standard/tests/file/stream_supports_lock.phpt
--TEST--
stream_supports_lock
--FILE--
<?php
$fp = fopen(__FILE__, "r");
var_dump($fp);
var_dump(stream_supports_lock($fp));
fclose($fp);
$fp = fopen("file://" . __FILE__, "r");
var_dump($fp);
var_dump(stream_supports_lock($fp));
fclose($fp);
$fp = fopen("php://memory", "r");
var_dump($fp);
var_dump(stream_supports_lock($fp));
fclose($fp);
$fp = fopen('data://text/plain,foobar', 'r');
var_dump($fp);
var_dump(stream_supports_lock($fp));
fclose($fp);
$sock = stream_context_create();
var_dump($sock);
var_dump(stream_supports_lock($sock));
echo "Done\n";
?>
--EXPECTF--
resource(%d) of type (stream)
bool(true)
resource(%d) of type (stream)
bool(true)
resource(%d) of type (stream)
bool(false)
resource(%d) of type (stream)
bool(false)
resource(%d) of type (stream-context)
Warning: stream_supports_lock(): supplied resource is not a valid stream
resource in %s on line %d
bool(false)
Done
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php