From 412de9a637e94b877c7762d90c87525f35018083 Mon Sep 17 00:00:00 2001 From: nulltoken Date: Mon, 20 Dec 2010 10:43:23 +0100 Subject: [PATCH] Made gitfo_mkdir_recurs() gracefully recover when a given directory already exists. --- src/fileops.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/fileops.c b/src/fileops.c index a25796a7b..f2a08e8fb 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -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 = '/'; }