[PATCHv2] mingw_rmdir: do not prompt for retry when non-empty
- From
Erik Faye-Lund <kusmabite@gmail.com>
- Date
- Dec 10, 2012, 14:42 UTC
- Message-ID
- <1355150547-8212-1-git-send-email-kusmabite@gmail.com>
in ab1a11be ("mingw_rmdir: set errno=ENOTEMPTY when appropriate"), a check was added to prevent us from retrying to delete a directory that is both in use and non-empty.
However, this logic was slightly flawed; since we didn't return immediately, we end up falling out of the retry-loop, but right into the prompting-loop.
Fix this by setting errno, and guarding the prompting-loop with an errno-check.
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> ---
Here's the second version of this patch, sorry for the slight delay.
compat/mingw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/compat/mingw.c b/compat/mingw.c index 1eb974f..440224c 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -260,6 +260,8 @@ int mingw_rmdir(const char *pathname) while ((ret = _wrmdir(wpathname)) == -1 && tries < ARRAY_SIZE(delay)) { if (!is_file_in_use_error(GetLastError())) + errno = err_win_to_posix(GetLastError()); + if (errno != EACCES) break; if (!is_dir_empty(wpathname)) { errno = ENOTEMPTY; @@ -275,7 +277,7 @@ int mingw_rmdir(const char *pathname) Sleep(delay[tries]); tries++; } - while (ret == -1 && is_file_in_use_error(GetLastError()) && + while (ret == -1 && errno == EACCES && is_file_in_use_error(GetLastError()) && ask_yes_no_if_possible("Deletion of directory '%s' failed. " "Should I try again?", pathname)) ret = _wrmdir(wpathname);
-- 1.8.0.msysgit.0.3.gafa53b0.dirty -- *** Please reply-to-all at all times *** *** (do not pretend to know who is subscribed and who is not) *** *** Please avoid top-posting. *** The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free. You received this message because you are subscribed to the Google Groups "msysGit" group. To post to this group, send email to msysgit@googlegroups.com To unsubscribe from this group, send email to msysgit+unsubscribe@googlegroups.com For more options, and view previous threads, visit this group at http://groups.google.com/group/msysgit?hl=en_US?hl=en