diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-06-14 12:38:36 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-06-14 12:38:36 +0200 |
commit | c28cafb18d4ecf079d77f15a7b8d9ba6d4241b5a (patch) | |
tree | eae9b646e6b934911c2a263b02bea9507d00b487 | |
parent | 7a4021debaa1f89c0ee2ad41f446a8234f8261c7 (diff) |
xargs: trivial code shrink
function old new delta
process_stdin 343 336 -7
process0_stdin 124 117 -7
xargs_main 807 787 -20
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | findutils/xargs.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/findutils/xargs.c b/findutils/xargs.c index 857773df9..5c2668553 100644 --- a/findutils/xargs.c +++ b/findutils/xargs.c @@ -150,7 +150,6 @@ static void store_param(char *s) * (buf has extra byte at the end to accomodate terminating NUL * of "tail characters" string). * Otherwise, the returned pointer points to NUL byte. - * The args[] vector is NULL-terminated. * On entry, buf[] may contain some "seed chars" which are to become * the beginning of the first parameter. */ @@ -241,7 +240,7 @@ static char* FAST_FUNC process_stdin(int n_max_chars, int n_max_arg, char *buf) } ret: *p = '\0'; - store_param(NULL); + /* store_param(NULL) - caller will do it */ dbg_msg("return:'%s'", s); return s; } @@ -293,7 +292,7 @@ static char* FAST_FUNC process_stdin(int n_max_chars, int n_max_arg, char *buf) } ret: *p = '\0'; - store_param(NULL); + /* store_param(NULL) - caller will do it */ dbg_msg("return:'%s'", s); return s; } @@ -334,7 +333,7 @@ static char* FAST_FUNC process0_stdin(int n_max_chars, int n_max_arg, char *buf) } ret: *p = '\0'; - store_param(NULL); + /* store_param(NULL) - caller will do it */ dbg_msg("return:'%s'", s); return s; } @@ -461,13 +460,10 @@ int xargs_main(int argc, char **argv) buf = xzalloc(n_max_chars + 1); + n_max_arg = n_max_chars; if (opt & OPT_UPTO_NUMBER) { n_max_arg = xatou_range(max_args, 1, INT_MAX); - if (n_max_arg < n_max_chars) - goto skip; } - n_max_arg = n_max_chars; - skip: /* Allocate pointers for execvp */ /* We can statically allocate (argc + n_max_arg + 1) elements @@ -489,6 +485,7 @@ int xargs_main(int argc, char **argv) G.idx = argc; rem = read_args(n_max_chars, n_max_arg, buf); + store_param(NULL); if (!G.args[argc]) { if (*rem != '\0') @@ -499,10 +496,11 @@ int xargs_main(int argc, char **argv) opt |= OPT_NO_EMPTY; if (opt & (OPT_INTERACTIVE | OPT_VERBOSE)) { - for (i = 0; G.args[i]; i++) { - if (i) - bb_putchar_stderr(' '); - fputs(G.args[i], stderr); + const char *fmt = " %s" + 1; + char **args = G.args; + for (i = 0; args[i]; i++) { + fprintf(stderr, fmt, args[i]); + fmt = " %s"; } if (!(opt & OPT_INTERACTIVE)) bb_putchar_stderr('\n'); |