From 0f3761b99d15c41907ab32a8a398840c14e871c4 Mon Sep 17 00:00:00 2001
From: Angie Byron <webchick@24967.no-reply.drupal.org>
Date: Fri, 10 Jul 2009 03:46:33 +0000
Subject: [PATCH] #515280 by drewish: Allow file_create_directory() to create
 recursively, taking advantage of PHP 5.

---
 includes/file.inc                  | 4 +++-
 modules/simpletest/tests/file.test | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/includes/file.inc b/includes/file.inc
index 6cf3586df890..4495aca9d317 100644
--- a/includes/file.inc
+++ b/includes/file.inc
@@ -156,7 +156,9 @@ function file_check_directory(&$directory, $mode = 0, $form_item = NULL) {
 
   // Check if directory exists.
   if (!is_dir($directory)) {
-    if (($mode & FILE_CREATE_DIRECTORY) && @mkdir($directory)) {
+    // Let mkdir() recursively create directories and use the default directory
+    // permissions.
+    if (($mode & FILE_CREATE_DIRECTORY) && @mkdir($directory, variable_get('file_chmod_directory', 0775), TRUE)) {
       drupal_chmod($directory);
     }
     else {
diff --git a/modules/simpletest/tests/file.test b/modules/simpletest/tests/file.test
index bbf434055d62..b443777ba981 100644
--- a/modules/simpletest/tests/file.test
+++ b/modules/simpletest/tests/file.test
@@ -672,7 +672,7 @@ class FileDirectoryTest extends FileTestCase {
    */
   function testFileCheckDirectory() {
     // A directory to operate on.
-    $directory = file_directory_path() . '/' . $this->randomName();
+    $directory = file_directory_path() . '/' . $this->randomName() . '/' . $this->randomName();
     $this->assertFalse(is_dir($directory), t('Directory does not exist prior to testing.'));
 
     // Non-existent directory.
-- 
GitLab