From: Pierre Habouzit <madcoder@debian.org>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH 2/3] parseopt: introduce OPT_RECURSE to specify shared options
Date: Mon, 05 Nov 2007 17:53:59 +0100 [thread overview]
Message-ID: <20071105165359.GC6205@artemis.corp> (raw)
In-Reply-To: <Pine.LNX.4.64.0711051623450.4362@racer.site>
[-- Attachment #1: Type: text/plain, Size: 2297 bytes --]
On Mon, Nov 05, 2007 at 04:29:43PM +0000, Johannes Schindelin wrote:
> Hi,
>
> On Mon, 5 Nov 2007, Linus Torvalds wrote:
>
> > On Mon, 5 Nov 2007, Johannes Schindelin wrote:
> > >
> > > After kicking this around a bit more on IRC, we had another idea.
> > > Instead of introducing OPT_RECURSE(), do something like OPT__QUIET(),
> > > only this time in diff.h: ....
> >
> > I think the preprocessor approach would tend to be simpler, which is an
> > advantage. But whichever approach is chosen, I think one important issue
> > is to make sure that options that *hide* other options are correctly
> > handled in the help printout..
>
> Yep. See my patch 3/3, which just used a char[256] for the short names,
> and a path-list for the long names.
>
> > But that's an implementation issue. The same certainly *can* be done
> > with a recursive setup, just passing a linked list of what the earlier
> > levels were (which is what we do in other places). And it's not like the
> > recursion is going to be very deep or complex.
>
> Exactly.
>
> The more pressing issue is that we have pointers in the option structure,
> which point back to the variables expected to hold the option values.
>
> The recurse approach would need fixing up those (or some ugly copying of
> a struct diff_options).
>
> But the preprocessor approach means wasting space (since we basically have
> the same options in different builtins),
The "lost" space is the number of options x sizeof(struct option), the
latter being (if I'm correct):
on i386: 9 * 4 = 36 octets
on amd64: 4 x 2 + 8 * 4 + 8 (padding) + 8 * 2 = 64 octets.
It's not even near being an issue :)
> and it means that the callback
> functions needed to parse e.g. the diff colour names need to be public.
> Which is not the worst thing, of course.
Well it's certainly less ugly than copying the diff_options or
reseting it or anything like that. I don't care if we need to make a
couple of opt-parsing function public more than what we could have
needed.
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2007-11-05 16:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-05 12:03 proposal for an OPTION_SUBARRAY (recursive parser) Pierre Habouzit
2007-11-05 12:03 ` [PATCH 1/4] parse-options: abbreviation engine fix Pierre Habouzit
2007-11-05 12:03 ` [PATCH 2/4] Some better parse-options documentation Pierre Habouzit
2007-11-05 12:03 ` [PATCH 3/4] Add OPTION_BASEOFFSET/OPTION_SUBARRAY Pierre Habouzit
2007-11-05 12:03 ` [PATCH 4/4] Implement OPTION_SUBARRAY handling Pierre Habouzit
2007-11-05 12:34 ` [PATCH] parse-options: abbreviation engine fix Johannes Schindelin
2007-11-05 12:38 ` Johannes Schindelin
2007-11-05 13:15 ` [PATCH 1/3] " Johannes Schindelin
2007-11-05 13:15 ` [PATCH 2/3] parseopt: introduce OPT_RECURSE to specify shared options Johannes Schindelin
2007-11-05 13:46 ` Johannes Schindelin
2007-11-05 16:15 ` Linus Torvalds
2007-11-05 16:29 ` Johannes Schindelin
2007-11-05 16:53 ` Pierre Habouzit [this message]
2007-11-05 21:48 ` Junio C Hamano
2007-11-05 22:14 ` Pierre Habouzit
2007-11-05 13:15 ` [PATCH 3/3] parseopt: do not list options with the same name twice Johannes Schindelin
2007-11-05 12:59 ` [PATCH] parse-options: abbreviation engine fix Pierre Habouzit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071105165359.GC6205@artemis.corp \
--to=madcoder@debian.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.