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
This commit is contained in:
Eric Andersen
2003-06-20 09:01:58 +00:00
parent dfce3536ac
commit 8876fb2f59
19 changed files with 592 additions and 533 deletions

View File

@@ -452,10 +452,8 @@ static int getn(const char *s)
if (errno != 0)
bb_error_msg_and_die("%s: out of range", s);
while (isspace(*p))
p++;
if (*p)
/* p = bb_skip_whitespace(p); avoid const warning */
if (*(bb_skip_whitespace(p)))
bb_error_msg_and_die("%s: bad number", s);
return (int) r;