johannes Mon, 25 Jan 2010 15:57:24 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=293995
Log:
merge r292595: Changed stream_resolve_include_path to use zend_resolve_path
(mkoppanen)
Changed paths:
_U php/php-src/branches/PHP_5_3_2/
U php/php-src/branches/PHP_5_3_2/NEWS
U php/php-src/branches/PHP_5_3_2/ext/standard/basic_functions.c
U php/php-src/branches/PHP_5_3_2/ext/standard/streamsfuncs.c
U php/php-src/branches/PHP_5_3_2/ext/standard/streamsfuncs.h
A +
php/php-src/branches/PHP_5_3_2/ext/standard/tests/streams/stream_resolve_include_path.phpt
(from
php/php-src/branches/PHP_5_3/ext/standard/tests/streams/stream_resolve_include_path.phpt:r292595)
Property changes on: php/php-src/branches/PHP_5_3_2
___________________________________________________________________
Modified: svn:mergeinfo
- /php/php-src/branches/PHP_5_3:292504,292574,292594
/php/php-src/trunk:284726
+ /php/php-src/branches/PHP_5_3:292504,292574,292594-292595
/php/php-src/trunk:284726
Modified: php/php-src/branches/PHP_5_3_2/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3_2/NEWS 2010-01-25 15:53:23 UTC (rev 293994)
+++ php/php-src/branches/PHP_5_3_2/NEWS 2010-01-25 15:57:24 UTC (rev 293995)
@@ -29,6 +29,7 @@
- Added support for CURLOPT_CERTINFO. FR #49253.
(Linus Nielsen Feltzing <[email protected]>)
- Added client-side server name indication support in openssl. (Arnaud)
+- Added stream_resolve_include_path() (Mikko)
- Improved fix for bug #50006 (Segfault caused by uksort()). (Stas)
Modified: php/php-src/branches/PHP_5_3_2/ext/standard/basic_functions.c
===================================================================
--- php/php-src/branches/PHP_5_3_2/ext/standard/basic_functions.c
2010-01-25 15:53:23 UTC (rev 293994)
+++ php/php-src/branches/PHP_5_3_2/ext/standard/basic_functions.c
2010-01-25 15:57:24 UTC (rev 293995)
@@ -2010,6 +2010,10 @@
ZEND_BEGIN_ARG_INFO(arginfo_stream_get_wrappers, 0)
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_INFO(arginfo_stream_resolve_include_path, 0)
+ ZEND_ARG_INFO(0, filename)
+ZEND_END_ARG_INFO()
+
ZEND_BEGIN_ARG_INFO(arginfo_stream_is_local, 0)
ZEND_ARG_INFO(0, stream)
ZEND_END_ARG_INFO()
@@ -3115,6 +3119,7 @@
PHP_FE(stream_wrapper_restore,
arginfo_stream_wrapper_restore)
PHP_FE(stream_get_wrappers,
arginfo_stream_get_wrappers)
PHP_FE(stream_get_transports,
arginfo_stream_get_transports)
+ PHP_FE(stream_resolve_include_path,
arginfo_stream_resolve_include_path)
PHP_FE(stream_is_local,
arginfo_stream_is_local)
PHP_FE(get_headers,
arginfo_get_headers)
Modified: php/php-src/branches/PHP_5_3_2/ext/standard/streamsfuncs.c
===================================================================
--- php/php-src/branches/PHP_5_3_2/ext/standard/streamsfuncs.c 2010-01-25
15:53:23 UTC (rev 293994)
+++ php/php-src/branches/PHP_5_3_2/ext/standard/streamsfuncs.c 2010-01-25
15:57:24 UTC (rev 293995)
@@ -1442,6 +1442,26 @@
}
/* }}} */
+/* {{{ proto string stream_resolve_include_path(string filename)
+Determine what file will be opened by calls to fopen() with a relative path */
+PHP_FUNCTION(stream_resolve_include_path)
+{
+ char *filename, *resolved_path;
+ int filename_len;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename,
&filename_len) == FAILURE) {
+ return;
+ }
+
+ resolved_path = zend_resolve_path(filename, filename_len TSRMLS_CC);
+
+ if (resolved_path) {
+ RETURN_STRING(resolved_path, 0);
+ }
+ RETURN_FALSE;
+}
+/* }}} */
+
/* {{{ proto bool stream_is_local(resource stream|string url) U
*/
PHP_FUNCTION(stream_is_local)
Modified: php/php-src/branches/PHP_5_3_2/ext/standard/streamsfuncs.h
===================================================================
--- php/php-src/branches/PHP_5_3_2/ext/standard/streamsfuncs.h 2010-01-25
15:53:23 UTC (rev 293994)
+++ php/php-src/branches/PHP_5_3_2/ext/standard/streamsfuncs.h 2010-01-25
15:57:24 UTC (rev 293995)
@@ -56,6 +56,7 @@
PHP_FUNCTION(stream_filter_remove);
PHP_FUNCTION(stream_socket_enable_crypto);
PHP_FUNCTION(stream_socket_shutdown);
+PHP_FUNCTION(stream_resolve_include_path);
PHP_FUNCTION(stream_is_local);
PHP_FUNCTION(stream_supports_lock);
Copied:
php/php-src/branches/PHP_5_3_2/ext/standard/tests/streams/stream_resolve_include_path.phpt
(from rev 292595,
php/php-src/branches/PHP_5_3/ext/standard/tests/streams/stream_resolve_include_path.phpt)
===================================================================
---
php/php-src/branches/PHP_5_3_2/ext/standard/tests/streams/stream_resolve_include_path.phpt
(rev 0)
+++
php/php-src/branches/PHP_5_3_2/ext/standard/tests/streams/stream_resolve_include_path.phpt
2010-01-25 15:57:24 UTC (rev 293995)
@@ -0,0 +1,37 @@
+--TEST--
+stream_resolve_include_path(string path)
+--FILE--
+<?php
+$include_path = __DIR__ . '/test_path';
+$include_path_nested = $include_path . '/nested';
+
+$include_path_file = $include_path . DIRECTORY_SEPARATOR . 'file';
+$include_path_nested_file = $include_path_nested . DIRECTORY_SEPARATOR .
'file';
+
+mkdir($include_path);
+mkdir($include_path_nested);
+
+file_put_contents($include_path_file, 'include_path');
+file_put_contents($include_path_nested_file, 'include_path');
+
+var_dump(stream_resolve_include_path());
+
+set_include_path($include_path . PATH_SEPARATOR . $include_path_nested);
+var_dump(stream_resolve_include_path('file-does-not-exist'));
+
+set_include_path($include_path . PATH_SEPARATOR . $include_path_nested);
+var_dump(stream_resolve_include_path('file'));
+set_include_path($include_path_nested . PATH_SEPARATOR . $include_path);
+var_dump(stream_resolve_include_path('file'));
+
+unlink($include_path_nested_file);
+rmdir($include_path_nested);
+unlink($include_path_file);
+rmdir($include_path);
+--EXPECTF--
+Warning: stream_resolve_include_path() expects exactly 1 parameter, 0 given in
%s on line %d
+NULL
+bool(false)
+string(%d) "%s/test_path/file"
+string(%d) "%s/test_path/nested/file"
+
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php