Made gitfo_mkdir_recurs() gracefully recover when a given directory already exists.

This commit is contained in:
nulltoken 2010-12-20 10:43:23 +01:00
parent 40c44d2fb6
commit 412de9a637

View File

@ -323,10 +323,15 @@ int gitfo_mkdir_recurs(const char *path, int mode)
error = GIT_SUCCESS;
pp = path_copy;
while (error == 0 && (sp = strchr(pp, '/')) != 0) {
while (error == GIT_SUCCESS && (sp = strchr(pp, '/')) != 0) {
if (sp != pp && gitfo_isdir(path_copy) < GIT_SUCCESS) {
*sp = 0;
error = gitfo_mkdir(path_copy, mode);
/* Do not choke while trying to recreate an existing directory */
if (errno == EEXIST)
error = GIT_SUCCESS;
*sp = '/';
}