last_patch89 from vodz:

    Manuel,

    I rewrite bb_getopt_ulflags() function for more universal usage.
    My version support now:
    - options with arguments (optional arg as GNU extension also)
    - complementaly and/or incomplementaly and/or incongruously and/or list
    options
    - long_opt (all applets may have long option, add supporting is trivial)
    This realisation full compatibile from your version.
    Code size grow 480 bytes, but only coreutils/* over compensate this size
    after using new function. Last patch reduced over 800 bytes and not full
    applied to all. "mkdir" and "mv" applets have long_opt now for demonstrate
    trivial addition support long_opt with usage new bb_getopt_ulflags().
    Complementaly and/or incomplementaly and/or incongruously and/or list options
    logic is not trivial, but new "cut" and "grep" applets using this logic
    for examples with full demostrating. New "grep" applet reduced over 300
    bytes.

    Mark,
    Also. I removed bug from "grep" applet.
    $ echo a b | busybox grep -e a b
    a b
    a b
    But right is printing one only.

    --w
    vodz
diff --git a/findutils/xargs.c b/findutils/xargs.c
index d4bed57..2b18f8f 100644
--- a/findutils/xargs.c
+++ b/findutils/xargs.c
@@ -66,24 +66,13 @@
 	char *file_to_act_on;
 	char **args;
 	int  i, a;
-	char flg_vi       = 0;    /* verbose |& interactive */
-	char flg_no_empty = 0;
+	char flg_vi;            /* verbose |& interactive */
+	char flg_no_empty;
 
-	while ((a = getopt(argc, argv, "prt")) > 0) {
-		switch(a) {
-			case 'p':
-				flg_vi |= 3;
-				break;
-			case 't':
-				flg_vi |= 1;
-				break;
-			case 'r':
-				flg_no_empty = 1;
-				break;
-			default:
-				bb_show_usage();
-		}
-	}
+	bb_opt_complementaly = "pt";
+	a = bb_getopt_ulflags(argc, argv, "tpr");
+	flg_vi = a & 3;
+	flg_no_empty = a & 4;
 
 	a = argc - optind;
 	argv += optind;
@@ -110,7 +99,7 @@
 						fputc(' ', stderr);
 					fputs(args[i], stderr);
 				}
-				fprintf(stderr, "%s", ((flg_vi & 2) ? " ?..." : "\n"));
+				fputs(((flg_vi & 2) ? " ?..." : "\n"), stderr);
 			}
 			if((flg_vi & 2) == 0 || bb_ask_confirmation() != 0 ) {
 				xargs_exec(args);