From c6744349df5089133b7662e67aba28282b6a963f Mon Sep 17 00:00:00 2001 From: Timo Hirvonen Date: Sat, 24 Jun 2006 20:21:53 +0300 Subject: Merge with_raw, with_stat and summary variables to output_format DIFF_FORMAT_* are now bit-flags instead of enumerated values. Signed-off-by: Timo Hirvonen Signed-off-by: Junio C Hamano --- diff.h | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'diff.h') diff --git a/diff.h b/diff.h index b61fdc8f1e..2b6dc0cbe4 100644 --- a/diff.h +++ b/diff.h @@ -20,19 +20,31 @@ typedef void (*add_remove_fn_t)(struct diff_options *options, const unsigned char *sha1, const char *base, const char *path); +#define DIFF_FORMAT_RAW 0x0001 +#define DIFF_FORMAT_DIFFSTAT 0x0002 +#define DIFF_FORMAT_SUMMARY 0x0004 +#define DIFF_FORMAT_PATCH 0x0008 + +/* These override all above */ +#define DIFF_FORMAT_NAME 0x0010 +#define DIFF_FORMAT_NAME_STATUS 0x0020 +#define DIFF_FORMAT_CHECKDIFF 0x0040 + +/* Same as output_format = 0 but we know that -s flag was given + * and we should not give default value to output_format. + */ +#define DIFF_FORMAT_NO_OUTPUT 0x0080 + struct diff_options { const char *filter; const char *orderfile; const char *pickaxe; unsigned recursive:1, - with_raw:1, - with_stat:1, tree_in_recursive:1, binary:1, full_index:1, silent_on_remove:1, find_copies_harder:1, - summary:1, color_diff:1; int context; int break_opt; @@ -151,15 +163,6 @@ extern void diffcore_std_no_resolve(struct diff_options *); " show all files diff when -S is used and hit is found.\n" extern int diff_queue_is_empty(void); - -#define DIFF_FORMAT_RAW 1 -#define DIFF_FORMAT_PATCH 2 -#define DIFF_FORMAT_NO_OUTPUT 3 -#define DIFF_FORMAT_NAME 4 -#define DIFF_FORMAT_NAME_STATUS 5 -#define DIFF_FORMAT_DIFFSTAT 6 -#define DIFF_FORMAT_CHECKDIFF 7 - extern void diff_flush(struct diff_options*); /* diff-raw status letters */ -- cgit v1.3-5-g9baa From 39bc9a6c2051a9fc31dc9b34b40bdd3dd94a8afb Mon Sep 17 00:00:00 2001 From: Timo Hirvonen Date: Sun, 25 Jun 2006 13:54:14 +0300 Subject: Add msg_sep to diff_options Add msg_sep variable to struct diff_options. msg_sep is printed after commit message. Default is "\n", format-patch sets it to "---\n". This also removes the second argument from show_log() because all callers derived it from the first argument: show_log(rev, rev->loginfo, ... Signed-off-by: Timo Hirvonen Signed-off-by: Junio C Hamano --- builtin-log.c | 1 + combine-diff.c | 7 ++++--- diff.c | 1 + diff.h | 1 + log-tree.c | 15 ++++++--------- log-tree.h | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) (limited to 'diff.h') diff --git a/builtin-log.c b/builtin-log.c index 4e5273aecf..71ae6c98a5 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -175,6 +175,7 @@ int cmd_format_patch(int argc, const char **argv, char **envp) rev.diff = 1; rev.combine_merges = 0; rev.ignore_merges = 1; + rev.diffopt.msg_sep = "---\n"; git_config(git_format_config); rev.extra_headers = extra_headers; diff --git a/combine-diff.c b/combine-diff.c index 3daa8cb13e..39fb10c145 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -701,7 +701,7 @@ static int show_patch_diff(struct combine_diff_path *elem, int num_parent, const char *abb; if (rev->loginfo) - show_log(rev, rev->loginfo, "\n"); + show_log(rev, opt->msg_sep); dump_quoted_path(dense ? "diff --cc " : "diff --combined ", elem->path); printf("index "); for (i = 0; i < num_parent; i++) { @@ -769,7 +769,7 @@ static void show_raw_diff(struct combine_diff_path *p, int num_parent, struct re inter_name_termination = 0; if (rev->loginfo) - show_log(rev, rev->loginfo, "\n"); + show_log(rev, opt->msg_sep); if (opt->output_format & DIFF_FORMAT_RAW) { offset = strlen(COLONS) - num_parent; @@ -855,7 +855,8 @@ void diff_tree_combined(const unsigned char *sha1, paths = intersect_paths(paths, i, num_parent); if (opt->output_format & DIFF_FORMAT_DIFFSTAT && rev->loginfo) - show_log(rev, rev->loginfo, "---\n"); + show_log(rev, opt->msg_sep); + diff_flush(&diffopts); if (opt->output_format & DIFF_FORMAT_DIFFSTAT) putchar('\n'); diff --git a/diff.c b/diff.c index 928345199d..491b846f62 100644 --- a/diff.c +++ b/diff.c @@ -1424,6 +1424,7 @@ void diff_setup(struct diff_options *options) options->break_opt = -1; options->rename_limit = -1; options->context = 3; + options->msg_sep = "\n"; options->change = diff_change; options->add_remove = diff_addremove; diff --git a/diff.h b/diff.h index 2b6dc0cbe4..729cd02510 100644 --- a/diff.h +++ b/diff.h @@ -57,6 +57,7 @@ struct diff_options { int rename_limit; int setup; int abbrev; + const char *msg_sep; const char *stat_sep; long xdl_opts; diff --git a/log-tree.c b/log-tree.c index 7d4c51f954..ab6b682223 100644 --- a/log-tree.c +++ b/log-tree.c @@ -43,9 +43,10 @@ static int append_signoff(char *buf, int buf_sz, int at, const char *signoff) return at; } -void show_log(struct rev_info *opt, struct log_info *log, const char *sep) +void show_log(struct rev_info *opt, const char *sep) { static char this_header[16384]; + struct log_info *log = opt->loginfo; struct commit *commit = log->commit, *parent = log->parent; int abbrev = opt->diffopt.abbrev; int abbrev_commit = opt->abbrev_commit ? opt->abbrev : 40; @@ -163,13 +164,9 @@ int log_tree_diff_flush(struct rev_info *opt) return 0; } - if (opt->loginfo && !opt->no_commit_id) { - if (opt->diffopt.output_format & DIFF_FORMAT_DIFFSTAT) { - show_log(opt, opt->loginfo, "---\n"); - } else { - show_log(opt, opt->loginfo, "\n"); - } - } + if (opt->loginfo && !opt->no_commit_id) + show_log(opt, opt->diffopt.msg_sep); + diff_flush(&opt->diffopt); return 1; } @@ -266,7 +263,7 @@ int log_tree_commit(struct rev_info *opt, struct commit *commit) shown = log_tree_diff(opt, commit, &log); if (!shown && opt->loginfo && opt->always_show_header) { log.parent = NULL; - show_log(opt, opt->loginfo, ""); + show_log(opt, ""); shown = 1; } opt->loginfo = NULL; diff --git a/log-tree.h b/log-tree.h index a26e4841ff..e82b56a20d 100644 --- a/log-tree.h +++ b/log-tree.h @@ -11,6 +11,6 @@ void init_log_tree_opt(struct rev_info *); int log_tree_diff_flush(struct rev_info *); int log_tree_commit(struct rev_info *, struct commit *); int log_tree_opt_parse(struct rev_info *, const char **, int); -void show_log(struct rev_info *opt, struct log_info *log, const char *sep); +void show_log(struct rev_info *opt, const char *sep); #endif -- cgit v1.3-5-g9baa