diff options
author | Junio C Hamano <junkio@cox.net> | 2006-04-15 01:59:40 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-04-15 01:59:40 -0700 |
commit | 183df63940bf92ea626af64d0057165b8aad24f6 (patch) | |
tree | 6069497a703de57e566cdbaa2718ba78e855b3b2 /log-tree.c | |
parent | Fix up rev-list option parsing. (diff) | |
download | tgif-183df63940bf92ea626af64d0057165b8aad24f6.tar.xz |
Revert all the rev-list option parsing changes.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'log-tree.c')
-rw-r--r-- | log-tree.c | 60 |
1 files changed, 55 insertions, 5 deletions
diff --git a/log-tree.c b/log-tree.c index 04a68e0f57..3d404824a1 100644 --- a/log-tree.c +++ b/log-tree.c @@ -3,7 +3,57 @@ #include "commit.h" #include "log-tree.h" -int log_tree_diff_flush(struct rev_info *opt) +void init_log_tree_opt(struct log_tree_opt *opt) +{ + memset(opt, 0, sizeof *opt); + opt->ignore_merges = 1; + opt->header_prefix = ""; + opt->commit_format = CMIT_FMT_RAW; + diff_setup(&opt->diffopt); +} + +int log_tree_opt_parse(struct log_tree_opt *opt, const char **av, int ac) +{ + const char *arg; + int cnt = diff_opt_parse(&opt->diffopt, av, ac); + if (0 < cnt) + return cnt; + arg = *av; + if (!strcmp(arg, "-r")) + opt->diffopt.recursive = 1; + else if (!strcmp(arg, "-t")) { + opt->diffopt.recursive = 1; + opt->diffopt.tree_in_recursive = 1; + } + else if (!strcmp(arg, "-m")) + opt->ignore_merges = 0; + else if (!strcmp(arg, "-c")) + opt->combine_merges = 1; + else if (!strcmp(arg, "--cc")) { + opt->dense_combined_merges = 1; + opt->combine_merges = 1; + } + else if (!strcmp(arg, "-v")) { + opt->verbose_header = 1; + opt->header_prefix = "diff-tree "; + } + else if (!strncmp(arg, "--pretty", 8)) { + opt->verbose_header = 1; + opt->header_prefix = "diff-tree "; + opt->commit_format = get_commit_format(arg+8); + } + else if (!strcmp(arg, "--root")) + opt->show_root_diff = 1; + else if (!strcmp(arg, "--no-commit-id")) + opt->no_commit_id = 1; + else if (!strcmp(arg, "--always")) + opt->always_show_header = 1; + else + return 0; + return 1; +} + +int log_tree_diff_flush(struct log_tree_opt *opt) { diffcore_std(&opt->diffopt); if (diff_queue_is_empty()) { @@ -23,7 +73,7 @@ int log_tree_diff_flush(struct rev_info *opt) return 1; } -static int diff_root_tree(struct rev_info *opt, +static int diff_root_tree(struct log_tree_opt *opt, const unsigned char *new, const char *base) { int retval; @@ -43,7 +93,7 @@ static int diff_root_tree(struct rev_info *opt, return retval; } -static const char *generate_header(struct rev_info *opt, +static const char *generate_header(struct log_tree_opt *opt, const unsigned char *commit_sha1, const unsigned char *parent_sha1, const struct commit *commit) @@ -79,7 +129,7 @@ static const char *generate_header(struct rev_info *opt, return this_header; } -static int do_diff_combined(struct rev_info *opt, struct commit *commit) +static int do_diff_combined(struct log_tree_opt *opt, struct commit *commit) { unsigned const char *sha1 = commit->object.sha1; @@ -92,7 +142,7 @@ static int do_diff_combined(struct rev_info *opt, struct commit *commit) return 0; } -int log_tree_commit(struct rev_info *opt, struct commit *commit) +int log_tree_commit(struct log_tree_opt *opt, struct commit *commit) { struct commit_list *parents; unsigned const char *sha1 = commit->object.sha1; |