]> granicus.if.org Git - php/commitdiff
Fixed the $context parameter on copy() to have an effect (approved for 5.3 by Johannes)
authorKalle Sommer Nielsen <kalle@php.net>
Tue, 17 Aug 2010 12:17:28 +0000 (12:17 +0000)
committerKalle Sommer Nielsen <kalle@php.net>
Tue, 17 Aug 2010 12:17:28 +0000 (12:17 +0000)
# To not change a PHPAPI in a point release, a new function have been added to support contexts:
# php_copy_file_ctx(), php_copy_file_ex() now simply wraps to that

ext/standard/basic_functions.c
ext/standard/file.c
ext/standard/file.h

index f7baa75c59aa1e65f9d68e981ff8cf85004625bb..df6ca7e41ad94282de64e00a547ba559f1185463 100644 (file)
@@ -5716,7 +5716,7 @@ PHP_FUNCTION(move_uploaded_file)
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno));
                }
 #endif
-       } else if (php_copy_file_ex(path, new_path, STREAM_DISABLE_OPEN_BASEDIR, NULL TSRMLS_CC) == SUCCESS) {
+       } else if (php_copy_file_ex(path, new_path, STREAM_DISABLE_OPEN_BASEDIR TSRMLS_CC) == SUCCESS) {
                VCWD_UNLINK(path);
                successful = 1;
        }
index fe0c27854da891e5ba82981955690afaf0d971a5..47b0c03fbdfa2d54ce6012c35035b6e25295aa61 100644 (file)
@@ -1646,7 +1646,7 @@ PHP_FUNCTION(copy)
 
        context = php_stream_context_from_zval(zcontext, 0);
 
-       if (php_copy_file_ex(source, target, 0, context TSRMLS_CC) == SUCCESS) {
+       if (php_copy_file_ctx(source, target, 0, context TSRMLS_CC) == SUCCESS) {
                RETURN_TRUE;
        } else {
                RETURN_FALSE;
@@ -1654,15 +1654,25 @@ PHP_FUNCTION(copy)
 }
 /* }}} */
 
-PHPAPI int php_copy_file(char *src, char *dest TSRMLS_DC) /* {{{ */
+/* {{{ php_copy_file
+ */
+PHPAPI int php_copy_file(char *src, char *dest TSRMLS_DC)
 {
-       return php_copy_file_ex(src, dest, 0, NULL TSRMLS_CC);
+       return php_copy_file_ctx(src, dest, 0, NULL TSRMLS_CC);
 }
 /* }}} */
 
-/* {{{ php_copy_file
+/* {{{ php_copy_file_ex
+ */
+PHPAPI int php_copy_file_ex(char *src, char *dest, int src_flg TSRMLS_DC)
+{
+       return php_copy_file_ctx(src, dest, 0, NULL TSRMLS_CC);
+}
+/* }}} */
+
+/* {{{ php_copy_file_ctx
  */
-PHPAPI int php_copy_file_ex(char *src, char *dest, int src_flg, php_stream_context *ctx TSRMLS_DC)
+PHPAPI int php_copy_file_ctx(char *src, char *dest, int src_flg, php_stream_context *ctx TSRMLS_DC)
 {
        php_stream *srcstream = NULL, *deststream = NULL;
        int ret = FAILURE;
index 37acc995089e0b1208a0a6d2780dc22e767dd0c7..eef483af96cbaf15c0ea3d60e18942fcfdbf1185 100644 (file)
@@ -75,7 +75,8 @@ PHP_MINIT_FUNCTION(user_streams);
 PHPAPI int php_le_stream_context(void);
 PHPAPI int php_set_sock_blocking(int socketd, int block TSRMLS_DC);
 PHPAPI int php_copy_file(char *src, char *dest TSRMLS_DC);
-PHPAPI int php_copy_file_ex(char *src, char *dest, int src_chk, php_stream_context *ctx TSRMLS_DC);
+PHPAPI int php_copy_file_ex(char *src, char *dest, int src_chk TSRMLS_DC);
+PHPAPI int php_copy_file_ctx(char *src, char *dest, int src_chk, php_stream_context *ctx TSRMLS_DC);
 PHPAPI int php_mkdir_ex(char *dir, long mode, int options TSRMLS_DC);
 PHPAPI int php_mkdir(char *dir, long mode TSRMLS_DC);
 PHPAPI void php_fgetcsv(php_stream *stream, char delimiter, char enclosure, char escape_char, size_t buf_len, char *buf, zval *return_value TSRMLS_DC);