From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: "Kristian Høgsberg" <krh@redhat.com>
Cc: Jonas Fonseca <fonseca@diku.dk>, gitster@pobox.com, git@vger.kernel.org
Subject: Re: [PATCH 1/4] Add a simple option parser for use by builtin-commit.c.
Date: Mon, 1 Oct 2007 19:13:27 +0100 (BST) [thread overview]
Message-ID: <Pine.LNX.4.64.0710011909291.28395@racer.site> (raw)
In-Reply-To: <1191255975.25093.26.camel@hinata.boston.redhat.com>
Hi,
On Mon, 1 Oct 2007, Kristian H?gsberg wrote:
> On Sun, 2007-09-30 at 15:11 +0200, Jonas Fonseca wrote:
>
> > One of the last things I miss from Cogito is the nice abbreviated help
> > messages that was available via '-h'. I don't know if it would be
> > acceptable (at least for the main porcelain commands) to put this
> > functionality into the option parser by adding a "description" member
> > to struct option and have parse_options print a nice:
> >
> > <error message if any>
> > <usage string>
> > <option summary>
> >
> > on failure, or, if that is regarded as too verbose, simply when -h is
> > detected.
>
> Yeah, that might be nice. We can add it in a follow-on patch, if the
> list agrees that it's a good thing, I guess.
That's a good idea; I would put the usage string there, too.
> > > +
> > > +/* Parse the given options against the list of known options. The
> > > + * order of the option structs matters, in that ambiguous
> > > + * abbreviations (eg, --in could be short for --include or
> > > + * --interactive) are matched by the first option that share the
> > > + * prefix.
> > > + */
> >
> > This prefix aware option parsing has not been ported over to the other
> > builtins when they were lifted from shell code. It might be nice to
> > have of course. Is it really needed?
>
> I don't ever use it myself and I think it's more confusing than helpful.
> I only added it to avoid introducing behavior changes in the port. I
> don't have strong feelings either way.
It might be convenient, but I think that it is really more confusing than
helpful, especially with options that share a prefix. Besides, we have
good completion for bash now (and I hear that this "zsh" thing also has
quite good completion), I recommend <TAB> over prefix DWIMery.
> > > +
> > > +extern int parse_options(const char ***argv,
> > > + struct option *options, int count,
> > > + const char *usage_string);
> >
> > I think the interface could be improved a bit. For example, it doesn't
> > need to count argument since the last entry in the options array is
> > OPTION_LAST and thus the size can be detected that way.
>
> Hehe, yeah, that's how I did it first. I don't have a strong preference
> for terminator elements vs. ARRAY_SIZE(), but Junio prefers the
> ARRAY_SIZE() approach, I guess. At this point I'm just trying the get
> the patches upstream...
FWIW I like the ARRAY_SIZE() approach better, too, since it is less error
prone.
Ciao,
Dscho
next prev parent reply other threads:[~2007-10-01 18:14 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-27 4:50 [PATCH 1/4] Add a simple option parser for use by builtin-commit.c Kristian Høgsberg
2007-09-27 4:50 ` [PATCH 2/4] This exports the update() function from builtin-add.c as Kristian Høgsberg
2007-09-27 4:50 ` [PATCH 3/4] Implement git commit as a builtin command Kristian Høgsberg
2007-09-27 4:50 ` [PATCH 4/4] Move launch_editor() and stripspace() to new file editor.c Kristian Høgsberg
2007-09-27 9:05 ` [PATCH 2/4] This exports the update() function from builtin-add.c as Junio C Hamano
2007-10-03 22:03 ` Kristian Høgsberg
2007-09-27 11:47 ` Johannes Schindelin
2007-09-27 19:50 ` Junio C Hamano
2007-09-30 13:11 ` [PATCH 1/4] Add a simple option parser for use by builtin-commit.c Jonas Fonseca
2007-10-01 10:14 ` Johannes Schindelin
2007-10-01 10:31 ` Jonas Fonseca
2007-10-01 11:39 ` Johannes Schindelin
2007-10-01 15:00 ` Jeff King
2007-10-01 16:26 ` Kristian Høgsberg
2007-10-01 18:13 ` Johannes Schindelin [this message]
2007-10-03 20:11 ` Jonas Fonseca
2007-10-03 21:53 ` Kristian Høgsberg
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=Pine.LNX.4.64.0710011909291.28395@racer.site \
--to=johannes.schindelin@gmx.de \
--cc=fonseca@diku.dk \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=krh@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).