git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 07/25] parse-options: make some arguments optional, add callbacks.

From
Pierre Habouzit <madcoder@debian.org>
Date
Oct 16, 2007, 16:50 UTC
Message-ID
<20071016165045.GB13946@artemis.corp>
In-Reply-To
<4714E90C.80305@lsrfire.ath.cx>
On Tue, Oct 16, 2007 at 04:38:36PM +0000, René Scharfe wrote:
Show 14 quoted lines
> 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).
  Oh yeah, you're right, well you example is not an issue, but indeed
you pointed out a real probable issue:
  With that chunk, if an option that takes now an integer, becomes an
option with a suffix, we would then break backward compatibility. I'm
not sure I'm clear, but if you had a -S option (for size) that for now
gets sizes in kilooctet, git foo -S1000. Then if we decide that it's
worth understanting M/G/.. suffixes for this option, we would make the
type of the option be a CALLBACK using git_parse_ulong. This would mean
that with such a change:
before:
  git foo -S1000a would mean git foo -S1000 -a
After:
  git foo -S1000a would be rejected because 'a' isn't a valid size
  suffix.
  This of course become worse if we take git foo -S1000k where the
breakage would be silent.
  This is a very strong argument _against_ this chunk IMO.
-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org
Previous: Nicolas PitreNext: Shawn O. Pearce
Message 12 of 24 in “[parse-options] proposal for merge, take 1”
  1. Pierre HabouzitOct 16, 2007
  2. Pierre HabouzitOct 16, 2007
  3. Pierre HabouzitOct 16, 2007
  4. Pierre HabouzitOct 16, 2007
  5. Johannes SchindelinOct 16, 2007
  6. René ScharfeOct 16, 2007
  7. Johannes SchindelinOct 16, 2007
  8. Pierre HabouzitOct 16, 2007
  9. Nicolas PitreOct 16, 2007
  10. René ScharfeOct 16, 2007
  11. Nicolas PitreOct 16, 2007
  12. Pierre HabouzitOct 16, 2007
  13. Shawn O. PearceOct 17, 2007
  14. Johannes SchindelinOct 17, 2007
  15. Michael WittenOct 16, 2007
  16. Michael WittenOct 16, 2007
  17. Johannes SchindelinOct 16, 2007
  18. Michael WittenOct 16, 2007
  19. Pierre HabouzitOct 16, 2007
  20. Alex RiesenOct 16, 2007
  21. Pierre HabouzitOct 16, 2007
  22. Alex RiesenOct 17, 2007
  23. Shawn O. PearceOct 17, 2007
  24. Pierre HabouzitOct 17, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.