Re: [ALTERNATE PATCH] Add a simple option parser.
- From
David Kastrup <dak@gnu.org>
- Date
- Oct 5, 2007, 14:59 UTC
- Message-ID
- <86lkahwqsz.fsf@lola.quinscape.zz>
- In-Reply-To
- <20071005143014.GA18176@glandium.org>
Mike Hommey <mh@glandium.org> writes:
Show 14 quoted lines
> On Fri, Oct 05, 2007 at 04:25:07PM +0200, Pierre Habouzit <madcoder@debian.org> wrote: >> The option parser takes argc, argv, an array of struct option >> and a usage string. Each of the struct option elements in the array >> describes a valid option, its type and a pointer to the location where the >> value is written. The entry point is parse_options(), which scans through >> the given argv, and matches each option there against the list of valid >> options. During the scan, argv is rewritten to only contain the >> non-option command line arguments and the number of these is returned. >> >> Aggregation of single switches is allowed: >> -rC0 is the same as -r -C 0 (supposing that -C wants an arg). > > I like options aggregation, but I'm not sure aggregating option arguments > is a good idea... I can't even think of an application that does it.
I think most allow this for the last option in a row. Tar is somewhat more perverse with its non-option command string:
tar xfzbv filename.tgz 40
uses filename.tgz as the option argument for "f" and 40 for "b".
Note that while tar accepts options instead of the initial command string,
tar -xfzbv filename.tgz 40
will _not_ work, while
tar -xffilename.tgz -z -b40 -v
presumably would (have no time to test this right now).
-- David Kastrup