From 613f0e187f77bdcd691aeae165bd4f5f031bb05c Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sun, 26 Jul 1998 00:29:30 +0000 Subject: [PATCH] (main): rmdir fails with EEXIST on some systems. Handle that, so --ignore-fail-on-non-empty works. (EEXIST): Define to zero if not defined. (ENOTEMPTY): Likewise. --- src/rmdir.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/rmdir.c b/src/rmdir.c index dfa737ef2d..f50849c71a 100644 --- a/src/rmdir.c +++ b/src/rmdir.c @@ -31,6 +31,14 @@ #include "closeout.h" #include "error.h" +#ifndef EEXIST +# define EEXIST 0 +#endif + +#ifndef ENOTEMPTY +# define ENOTEMPTY 0 +#endif + void strip_trailing_slashes (); /* The name this program was run with. */ @@ -199,14 +207,17 @@ main (int argc, char **argv) if (fail) { - if (!ignore_fail_on_non_empty || errno != ENOTEMPTY) - { - error (0, errno, "%s", dir); - errors = 1; - } + if (ignore_fail_on_non_empty + && (errno == ENOTEMPTY || errno == EEXIST)) + continue; + + error (0, errno, "%s", dir); + errors = 1; } else if (empty_paths) - errors += remove_parents (dir); + { + errors += remove_parents (dir); + } } exit (errors == 0 ? EXIT_SUCCESS : EXIT_FAILURE); -- 2.47.3