From 478700336d1c72e133b8ff6841e968c1bb1658ed Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 5 Apr 2022 15:31:01 +0100 Subject: patch 8.2.4696: delete() with "rf" argument does not report a failure Problem: delete() with "rf" argument does not report a failure. Solution: Return -1 if the directory could not be removed. (closes #10078) --- src/fileio.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/fileio.c') diff --git a/src/fileio.c b/src/fileio.c index 9ef2dbd3b..af915c665 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -5017,13 +5017,16 @@ delete_recursive(char_u *name) vim_snprintf((char *)NameBuff, MAXPATHL, "%s/%s", exp, ((char_u **)ga.ga_data)[i]); if (delete_recursive(NameBuff) != 0) + // Remember the failure but continue deleting any further + // entries. result = -1; } ga_clear_strings(&ga); + if (mch_rmdir(exp) != 0) + result = -1; } else result = -1; - (void)mch_rmdir(exp); vim_free(exp); } else -- cgit v1.2.1