Commit 412de9a6 by nulltoken

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

parent 40c44d2f
...@@ -323,10 +323,15 @@ int gitfo_mkdir_recurs(const char *path, int mode) ...@@ -323,10 +323,15 @@ int gitfo_mkdir_recurs(const char *path, int mode)
error = GIT_SUCCESS; error = GIT_SUCCESS;
pp = path_copy; 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) { if (sp != pp && gitfo_isdir(path_copy) < GIT_SUCCESS) {
*sp = 0; *sp = 0;
error = gitfo_mkdir(path_copy, mode); error = gitfo_mkdir(path_copy, mode);
/* Do not choke while trying to recreate an existing directory */
if (errno == EEXIST)
error = GIT_SUCCESS;
*sp = '/'; *sp = '/';
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment