ip: code shrink
[oweals/busybox.git] / findutils / xargs.c
index 7b9f1fb73aad0121b82f85917ada50db5d92d258..0d1bb43fc89a7e05ee06627342762f0149c1b0d2 100644 (file)
@@ -9,16 +9,12 @@
  * - Mike Rendell <michael@cs.mun.ca>
  * and David MacKenzie <djm@gnu.ai.mit.edu>.
  *
- * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  *
  * xargs is described in the Single Unix Specification v3 at
  * 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
 //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)
 
 
 /*
@@ -347,7 +349,6 @@ static int xargs_ask_confirmation(void)
 //usage:       "[OPTIONS] [PROG ARGS]"
 //usage:#define xargs_full_usage "\n\n"
 //usage:       "Run PROG on every item given by stdin\n"
-//usage:     "\nOptions:"
 //usage:       IF_FEATURE_XARGS_SUPPORT_CONFIRMATION(
 //usage:     "\n       -p      Ask user whether to run each command"
 //usage:       )
@@ -412,7 +413,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?