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
This commit is contained in:
Junio C Hamano 2012-12-11 15:51:14 -08:00
Родитель 1bfe99ed36 a83b2b578c
Коммит 7348159380
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -256,6 +256,8 @@ int mingw_rmdir(const char *pathname)
while ((ret = rmdir(pathname)) == -1 && tries < ARRAY_SIZE(delay)) { while ((ret = rmdir(pathname)) == -1 && tries < ARRAY_SIZE(delay)) {
if (!is_file_in_use_error(GetLastError())) if (!is_file_in_use_error(GetLastError()))
errno = err_win_to_posix(GetLastError());
if (errno != EACCES)
break; break;
if (!is_dir_empty(pathname)) { if (!is_dir_empty(pathname)) {
errno = ENOTEMPTY; errno = ENOTEMPTY;
@ -271,7 +273,7 @@ int mingw_rmdir(const char *pathname)
Sleep(delay[tries]); Sleep(delay[tries]);
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. " ask_yes_no_if_possible("Deletion of directory '%s' failed. "
"Should I try again?", pathname)) "Should I try again?", pathname))
ret = rmdir(pathname); ret = rmdir(pathname);