aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/fileio.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/fileio.c')
-rw-r--r--src/nvim/fileio.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index 64ad9a6d80..d68dda15f3 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -5408,15 +5408,18 @@ int delete_recursive(const char *name)
for (int i = 0; i < ga.ga_len; i++) {
vim_snprintf((char *)NameBuff, MAXPATHL, "%s/%s", exp, ((char_u **)ga.ga_data)[i]);
if (delete_recursive((const char *)NameBuff) != 0) {
+ // Remember the failure but continue deleting any further
+ // entries.
result = -1;
}
}
ga_clear_strings(&ga);
+ if (os_rmdir(exp) != 0) {
+ result = -1;
+ }
} else {
result = -1;
}
- // Note: "name" value may be changed in delete_recursive(). Must use the saved value.
- result = os_rmdir(exp) == 0 ? 0 : -1;
xfree(exp);
} else {
// Delete symlink only.