johannes                Tue Nov 20 22:17:01 2007 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/ext/standard/tests/file    stream_supports_lock.phpt 

  Modified files:              
    /php-src/ext/standard       streamsfuncs.c streamsfuncs.h 
                                basic_functions.c 
    /php-src    NEWS 
  Log:
  MFH: Add stream_supports_lock() function (Benjamin Schulz)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.58.2.6.2.15.2.5&r2=1.58.2.6.2.15.2.6&diff_format=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.5 
php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.6
--- php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.5       Thu Nov  8 
13:29:25 2007
+++ php-src/ext/standard/streamsfuncs.c Tue Nov 20 22:17:00 2007
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: streamsfuncs.c,v 1.58.2.6.2.15.2.5 2007/11/08 13:29:25 dmitry Exp $ */
+/* $Id: streamsfuncs.c,v 1.58.2.6.2.15.2.6 2007/11/20 22:17:00 johannes Exp $ 
*/
 
 #include "php.h"
 #include "php_globals.h"
@@ -1375,6 +1375,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)
        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.13.2.1.2.4&r2=1.13.2.1.2.4.2.1&diff_format=u
Index: php-src/ext/standard/streamsfuncs.h
diff -u php-src/ext/standard/streamsfuncs.h:1.13.2.1.2.4 
php-src/ext/standard/streamsfuncs.h:1.13.2.1.2.4.2.1
--- php-src/ext/standard/streamsfuncs.h:1.13.2.1.2.4    Mon Jul  9 17:27:24 2007
+++ php-src/ext/standard/streamsfuncs.h Tue Nov 20 22:17:00 2007
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: streamsfuncs.h,v 1.13.2.1.2.4 2007/07/09 17:27:24 dmitry Exp $ */
+/* $Id: streamsfuncs.h,v 1.13.2.1.2.4.2.1 2007/11/20 22:17:00 johannes Exp $ */
 
 /* Flags for stream_socket_client */
 #define PHP_STREAM_CLIENT_PERSISTENT   1
@@ -56,6 +56,7 @@
 PHP_FUNCTION(stream_socket_shutdown);
 PHP_FUNCTION(stream_socket_pair);
 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.725.2.31.2.64.2.12&r2=1.725.2.31.2.64.2.13&diff_format=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.725.2.31.2.64.2.12 
php-src/ext/standard/basic_functions.c:1.725.2.31.2.64.2.13
--- php-src/ext/standard/basic_functions.c:1.725.2.31.2.64.2.12 Thu Nov 15 
13:13:21 2007
+++ php-src/ext/standard/basic_functions.c      Tue Nov 20 22:17:00 2007
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: basic_functions.c,v 1.725.2.31.2.64.2.12 2007/11/15 13:13:21 bjori Exp 
$ */
+/* $Id: basic_functions.c,v 1.725.2.31.2.64.2.13 2007/11/20 22:17:00 johannes 
Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -2319,6 +2319,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) */
@@ -3493,6 +3498,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(fgetcsv,                                                         
                                                        arginfo_fgetcsv)
        PHP_FE(fputcsv,                                                         
                                                        arginfo_fputcsv)
        PHP_FE(flock,                                                           
                                                        arginfo_flock)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.49&r2=1.2027.2.547.2.965.2.50&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.965.2.49 
php-src/NEWS:1.2027.2.547.2.965.2.50
--- php-src/NEWS:1.2027.2.547.2.965.2.49        Tue Nov 20 21:25:10 2007
+++ php-src/NEWS        Tue Nov 20 22:17:01 2007
@@ -1,6 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 20??, PHP 5.3.0
+- Added stream_supports_lock() function (Benjamin Schulz)
 - Added msg_queue_exists() function (Benjamin Schulz)
 - Added 3 Firebird specific attributes that can be set via PDO::setAttribute()
   to control formatting of date/timestamp columns: PDO::FB_ATTR_DATE_FORMAT,

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

Reply via email to