From 02e542206f26cf06817ec2e9ffecf4f416e8e332 Mon Sep 17 00:00:00 2001 From: Pierre Habouzit Date: Tue, 8 Jul 2008 15:19:33 +0200 Subject: revisions: split handle_revision_opt() from setup_revisions() Add two fields to struct rev_info: - .def to store --default argument; and - .show_merge 1-bit field. handle_revision_opt() is able to deal with any revision option, and consumes them, and leaves revision arguments or pseudo arguments (like --all, --not, ...) in place. For now setup_revisions() does a pass of handle_revision_opt() again so that code not using it in a parse-opt parser still work the same. Signed-off-by: Pierre Habouzit Signed-off-by: Junio C Hamano --- revision.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'revision.h') diff --git a/revision.h b/revision.h index dcf08e089a..c44498e3b3 100644 --- a/revision.h +++ b/revision.h @@ -25,6 +25,7 @@ struct rev_info { /* Basic information */ const char *prefix; + const char *def; void *prune_data; unsigned int early_output; @@ -65,6 +66,7 @@ struct rev_info { /* Format info */ unsigned int shown_one:1, + show_merge:1, abbrev_commit:1, use_terminator:1, missing_newline:1; @@ -117,6 +119,8 @@ volatile show_early_output_fn_t show_early_output; extern void init_revisions(struct rev_info *revs, const char *prefix); extern int setup_revisions(int argc, const char **argv, struct rev_info *revs, const char *def); +extern int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, + int *unkc, const char **unkv); extern int handle_revision_arg(const char *arg, struct rev_info *revs,int flags,int cant_be_filename); extern int prepare_revision_walk(struct rev_info *revs); -- cgit v1.2.3