Hi,
On Tue, 17 Jun 2008, Junio C Hamano wrote:
Jeff King [off-list ref] writes:
quoted
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)
};
Ciao,
Dscho