On Thu, 2007-10-04 at 01:11 +0200, Pierre Habouzit wrote: > On Wed, Oct 03, 2007 at 09:45:01PM +0000, Kristian Høgsberg wrote: > > The option parser takes argc, argv, an array of struct option > > and a usage string. Each of the struct option elements in the array > > describes a valid option, its type and a pointer to the location where the > > value is written. The entry point is parse_options(), which scans through > > the given argv, and matches each option there against the list of valid > > options. During the scan, argv is rewritten to only contain the > > non-option command line arguments and the number of these is returned. > > if we are going in that direction (and I believe it's a good one), we > should be sure that the model fits with other commands as well. And as I > said on IRC, I believe the most "horrible" (as in complex) option parser > in git is the one from git-grep. > > A migration of git-grep on that API should be tried first. If this > works well enough, I believe that the rest of the git commands will be > migrated easily enough. (with maybe small addition to parse-option.[hc] > but the hardcore things should have been met with git-grep already I > think). I'm not sure - we can go with the current proposal and add new options types and probably the callback option type I suggested as we go. I don't want to block builtin-commit on figuring out what the perfect option parser should look like and what I sent out earlier work for commit. I think the way you handled the strbuf rewrites worked pretty well; extending and rewriting the API as you put it to use in more and more places. We can do the same thing with parse_options(). cheers, Kristian - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html