Browse Source

Merge branch 'ef/mingw-rmdir'

MinGW has a workaround when rmdir unnecessarily fails to retry with
a prompt, but the logic was kicking in when the rmdir failed with
ENOTEMPTY, i.e. was expected to fail and there is no point retrying.

* ef/mingw-rmdir:
  mingw_rmdir: do not prompt for retry when non-empty
maint
Junio C Hamano 12 years ago
parent
commit
7348159380
  1. 4
      compat/mingw.c

4
compat/mingw.c

@ -256,6 +256,8 @@ int mingw_rmdir(const char *pathname) @@ -256,6 +256,8 @@ int mingw_rmdir(const char *pathname)

while ((ret = rmdir(pathname)) == -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(pathname)) {
errno = ENOTEMPTY;
@ -271,7 +273,7 @@ int mingw_rmdir(const char *pathname) @@ -271,7 +273,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 = rmdir(pathname);

Loading…
Cancel
Save