El 17/12/2007, a las 10:50, Pierre Habouzit escribió:
Signed-off-by: Pierre Habouzit <madcoder@xxxxxxxxxx>
---
// ...
/* when in `git --opt1 --opt2 foo -a -b -c` mode: */
int cmd_pos = git_find_builtin_command_name(argc, argv);
int count = parse_options(cmd_pos, argv, git_generic_options,
"git [special-options] cmd [options]", 0);
if (count)
die("unknown git command: `%s`", argv[0]);
argv += cmd_pos;
argc -= cmd_pos;
/* here we simulate an argv of {"foo", "-a", "-b", "-c"} */
Or even simpler, with the following specifically tailored patch you
can directly write:
argc = parse_options(argc, argv, git_generic_options,
"git [generic-options] <command> [cmd-options]",
PARSE_OPT_STOP_AT_ARG);
and then {argc, argv} will exactly be the NULL-terminated array
starting with the builtin command. Kind of nice :)
Indeed, nice ideas. I think all this will lead to a nice UI
improvement post-1.5.4.
About the only thing that I think would merit action *prior* to 1.5.4
is marking the "-p" switch to git (synonym for --paginate) as
deprecated, see as it clashes with other commands' uses of that switch
("git log -p" for example). Are there any other conflicting specials
that a currently parsed in git.c?
Cheers,
Wincent
-
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