diff options
author | Denys Vlasenko | 2011-03-03 09:51:57 +0100 |
---|---|---|
committer | Denys Vlasenko | 2011-03-03 09:51:57 +0100 |
commit | 7cfe6ea99e78f82b068216faac4739eaaebaaa8b (patch) | |
tree | 19296018221fcb40efdfe102f1cdbd693d09e1a4 | |
parent | 1df0af76700c7f75ea43006ad6d450cdeeb6244f (diff) | |
download | busybox-7cfe6ea99e78f82b068216faac4739eaaebaaa8b.zip busybox-7cfe6ea99e78f82b068216faac4739eaaebaaa8b.tar.gz |
xargs: support --no-run-if-empty (synonym to -r)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | findutils/xargs.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/findutils/xargs.c b/findutils/xargs.c index 0ec80f8..9677371 100644 --- a/findutils/xargs.c +++ b/findutils/xargs.c @@ -15,10 +15,6 @@ * http://www.opengroup.org/onlinepubs/007904975/utilities/xargs.html */ -//applet:IF_XARGS(APPLET_NOEXEC(xargs, xargs, BB_DIR_USR_BIN, BB_SUID_DROP, xargs)) - -//kbuild:lib-$(CONFIG_XARGS) += xargs.o - //config:config XARGS //config: bool "xargs" //config: default y @@ -58,6 +54,10 @@ //config: instead of whitespace, and the quotes and backslash //config: are not special. +//applet:IF_XARGS(APPLET_NOEXEC(xargs, xargs, BB_DIR_USR_BIN, BB_SUID_DROP, xargs)) + +//kbuild:lib-$(CONFIG_XARGS) += xargs.o + #include "libbb.h" /* This is a NOEXEC applet. Be very careful! */ @@ -89,7 +89,9 @@ struct globals { int idx; } FIX_ALIASING; #define G (*(struct globals*)&bb_common_bufsiz1) -#define INIT_G() do { } while (0) +#define INIT_G() do { \ + G.eof_str = NULL; /* need to clear by hand because we are NOEXEC applet */ \ +} while (0) /* @@ -412,7 +414,12 @@ int xargs_main(int argc, char **argv) INIT_G(); - G.eof_str = NULL; +#if ENABLE_DESKTOP && ENABLE_LONG_OPTS + /* For example, Fedora's build system uses --no-run-if-empty */ + applet_long_options = + "no-run-if-empty\0" No_argument "r" + ; +#endif opt = getopt32(argv, OPTION_STR, &max_args, &max_chars, &G.eof_str, &G.eof_str); /* -E ""? You may wonder why not just omit -E? |