Browse Source

Fixes for option parsing

Make sure "git show" always show the header, regardless of whether there
is a diff or not.

Also, make sure "always_show_header" actually works, since generate_header
only tested it in one out of three return paths.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Linus Torvalds 19 years ago committed by Junio C Hamano
parent
commit
78fff6ebba
  1. 1
      git.c
  2. 18
      log-tree.c

1
git.c

@ -373,6 +373,7 @@ static int cmd_show(int argc, const char **argv, char **envp) @@ -373,6 +373,7 @@ static int cmd_show(int argc, const char **argv, char **envp)
rev.diffopt.recursive = 1;
rev.combine_merges = 1;
rev.dense_combined_merges = 1;
rev.always_show_header = 1;
rev.ignore_merges = 0;
rev.no_walk = 1;
return cmd_log_wc(argc, argv, envp, &rev);

18
log-tree.c

@ -43,7 +43,7 @@ static int diff_root_tree(struct rev_info *opt, @@ -43,7 +43,7 @@ static int diff_root_tree(struct rev_info *opt,
return retval;
}

static const char *generate_header(struct rev_info *opt,
static const char *get_header(struct rev_info *opt,
const unsigned char *commit_sha1,
const unsigned char *parent_sha1,
const struct commit *commit)
@ -75,11 +75,21 @@ static const char *generate_header(struct rev_info *opt, @@ -75,11 +75,21 @@ static const char *generate_header(struct rev_info *opt,
offset += pretty_print_commit(opt->commit_format, commit, len,
this_header + offset,
sizeof(this_header) - offset, abbrev);
return this_header;
}

static const char *generate_header(struct rev_info *opt,
const unsigned char *commit_sha1,
const unsigned char *parent_sha1,
const struct commit *commit)
{
const char *header = get_header(opt, commit_sha1, parent_sha1, commit);

if (opt->always_show_header) {
puts(this_header);
return NULL;
puts(header);
header = NULL;
}
return this_header;
return header;
}

static int do_diff_combined(struct rev_info *opt, struct commit *commit)

Loading…
Cancel
Save