1303 files changed, 32187 insertions, 57138 deletions
diff --git a/coreutils/rmdir.c b/coreutils/rmdir.c index cc2dea0..8979941 100644 --- a/coreutils/rmdir.c +++ b/coreutils/rmdir.c @@ -6,6 +6,23 @@ * * Licensed under GPLv2 or later, see file LICENSE in this source tree. */ +//config:config RMDIR +//config: bool "rmdir" +//config: default y +//config: help +//config: rmdir is used to remove empty directories. +//config: +//config:config FEATURE_RMDIR_LONG_OPTIONS +//config: bool "Enable long options" +//config: default y +//config: depends on RMDIR && LONG_OPTS +//config: help +//config: Support long options for the rmdir applet, including +//config: --ignore-fail-on-non-empty for compatibility with GNU rmdir. + +//applet:IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir)) + +//kbuild:lib-$(CONFIG_RMDIR) += rmdir.o /* BB_AUDIT SUSv3 compliant */ /* http://www.opengroup.org/onlinepubs/007904975/utilities/rmdir.html */ @@ -31,7 +48,7 @@ #define PARENTS (1 << 0) -//efine VERBOSE (1 << 1) //accepted but ignored +#define VERBOSE ((1 << 1) * ENABLE_FEATURE_VERBOSE) #define IGNORE_NON_EMPTY (1 << 2) int rmdir_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; @@ -44,10 +61,12 @@ int rmdir_main(int argc UNUSED_PARAM, char **argv) #if ENABLE_FEATURE_RMDIR_LONG_OPTIONS static const char rmdir_longopts[] ALIGN1 = "parents\0" No_argument "p" - "verbose\0" No_argument "v" /* Debian etch: many packages fail to be purged or installed * because they desperately want this option: */ "ignore-fail-on-non-empty\0" No_argument "\xff" + IF_FEATURE_VERBOSE( + "verbose\0" No_argument "v" + ) ; applet_long_options = rmdir_longopts; #endif @@ -62,6 +81,10 @@ int rmdir_main(int argc UNUSED_PARAM, char **argv) path = *argv; while (1) { + if (flags & VERBOSE) { + printf("rmdir: removing directory, '%s'\n", path); + } + if (rmdir(path) < 0) { #if ENABLE_FEATURE_RMDIR_LONG_OPTIONS if ((flags & IGNORE_NON_EMPTY) && errno == ENOTEMPTY) |