Re: [PATCH 07/25] parse-options: make some arguments optional, add callbacks.
On Tue, Oct 16, 2007 at 04:44:44PM +0000, Johannes Schindelin wrote:
Show 23 quoted lines
> Hi,
>
> On Tue, 16 Oct 2007, Ren? Scharfe wrote:
>
> > Pierre Habouzit schrieb:
> > > This bit is to allow to aggregate options with arguments together when
> > > the argument is numeric.
> > >
> > > +#if 0
> > > + /* can be used to understand -A1B1 like -A1 -B1 */
> > > + if (flag & OPT_SHORT && opt->opt && isdigit(*opt->opt)) {
> > > + *(int *)opt->value = strtol(opt->opt, (char **)&opt->opt, 10);
> > > + return 0;
> > > + }
> > > +#endif
> >
> > I don't like it, it complicates number options with unit suffixes (e.g.
> > --windows-memory of git-pack-objects).
>
> Why? It only means that you cannot say -W10mxabc instead of -W10m xabc.
>
> Remember: this is a special case for OPT_INTEGER. Nothing to do with
> OPT_SIZE, which you'd probably implement as a callback. Yeah but the point is that you can't migrate an option currently being
an integer to an OPT_SIZE because of that (see my other mail). Meaning
that once an argument is of type OPT_INTEGER you can't change it's type
in the future _AT ALL_ without breaking backward compatibility badly.
I'd say it's a rather sucky design.
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org