]> granicus.if.org Git - php/commitdiff
MFH: Fixed bug #23913 (make rename() work across partitions on *nix)
authorIlia Alshanetsky <iliaa@php.net>
Sat, 31 May 2003 00:33:06 +0000 (00:33 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Sat, 31 May 2003 00:33:06 +0000 (00:33 +0000)
ext/standard/file.c

index 489c96074cb76898cd5ce2c0a1076848cfc713be..0133fa510d4d2346fc04750337fb1ea44738c447 100644 (file)
@@ -1867,6 +1867,14 @@ PHP_FUNCTION(rename)
        ret = VCWD_RENAME(old_name, new_name);
 
        if (ret == -1) {
+#ifdef EXDEV
+               if (errno == EXDEV) {
+                       if (php_copy_file(old_name, new_name TSRMLS_CC) == SUCCESS) {
+                               VCWD_UNLINK(old_name);
+                               RETURN_TRUE;
+                       }
+               }
+#endif 
                php_error_docref2(NULL TSRMLS_CC, old_name, new_name, E_WARNING, "%s", strerror(errno));
                RETURN_FALSE;
        }