Re: [PATCH 1/2] parse_options: Add flag to prevent errors for further processing
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 18, 2008, 18:52 UTC
- Message-ID
- <7v8wx2zibp.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <alpine.DEB.1.00.0806181709300.6439@racer>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 23 quoted lines
> On Tue, 17 Jun 2008, Junio C Hamano wrote:
>
>> Jeff King <peff@peff.net> writes:
>>
>> > I think the only right way to accomplish this is to convert the revision
>> > and diff parameters into a parseopt-understandable format.
>>
>> Not necessarily. You could structure individual option parsers like how
>> diff option parsers are done. You iterate over argv[], feed diff option
>> parser the current index into argv[] and ask if it is an option diff
>> understands, have diff eat the option (and possibly its parameter) to
>> advance the index, or allow diff option to say "I do not understand
>> this", and then handle it yourself or hand it to other parsers.
>
> AFAIR Pierre tried a few ways, and settled with a macro to introduce the
> diff options into a caller's options.
>
> IOW it would look something like this:
>
> static struct option builtin_what_options[] = {
> [... options specific to this command ...]
> DIFF__OPT(&diff_options)
> };I think that is the more painful approach Jeff mentioned, and my comment was to show that it is not the only way.