diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2020-09-08 10:16:08 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-09-09 01:03:26 +0300 |
commit | cdffbdc217aba8a39d786a642d1376a5a605adec (patch) | |
tree | 212d466731fac04ad80903848f647a52d9a3bf04 | |
parent | 3a238e539bcdfe3f9eb5010fd218640c1b499f7a (diff) |
diff: move show_interdiff() from its own file to diff-lib
show_interdiff() is a relatively small function and not likely to grow
larger or more complicated. Rather than dedicating an entire source file
to it, relocate it to diff-lib.c which houses other "take two things and
compare them" functions meant to be re-used but not so low-level as to
reside in the core diff implementation.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | builtin/log.c | 1 | ||||
-rw-r--r-- | diff-lib.c | 24 | ||||
-rw-r--r-- | diff.h | 2 | ||||
-rw-r--r-- | interdiff.c | 28 | ||||
-rw-r--r-- | interdiff.h | 8 | ||||
-rw-r--r-- | log-tree.c | 1 |
7 files changed, 26 insertions, 39 deletions
@@ -883,7 +883,6 @@ LIB_OBJS += hashmap.o LIB_OBJS += help.o LIB_OBJS += hex.o LIB_OBJS += ident.o -LIB_OBJS += interdiff.o LIB_OBJS += json-writer.o LIB_OBJS += kwset.o LIB_OBJS += levenshtein.o diff --git a/builtin/log.c b/builtin/log.c index b58f8da09ef..ae9380da1be 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -33,7 +33,6 @@ #include "commit-slab.h" #include "repository.h" #include "commit-reach.h" -#include "interdiff.h" #include "range-diff.h" #define MAIL_DEFAULT_WRAP 72 diff --git a/diff-lib.c b/diff-lib.c index 50521e2093f..9bab9074120 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -571,3 +571,27 @@ int index_differs_from(struct repository *r, object_array_clear(&rev.pending); return (rev.diffopt.flags.has_changes != 0); } + +static struct strbuf *idiff_prefix_cb(struct diff_options *opt, void *data) +{ + return data; +} + +void show_interdiff(struct rev_info *rev, int indent) +{ + struct diff_options opts; + struct strbuf prefix = STRBUF_INIT; + + memcpy(&opts, &rev->diffopt, sizeof(opts)); + opts.output_format = DIFF_FORMAT_PATCH; + opts.output_prefix = idiff_prefix_cb; + strbuf_addchars(&prefix, ' ', indent); + opts.output_prefix_data = &prefix; + diff_setup_done(&opts); + + diff_tree_oid(rev->idiff_oid1, rev->idiff_oid2, "", &opts); + diffcore_std(&opts); + diff_flush(&opts); + + strbuf_release(&prefix); +} @@ -600,6 +600,8 @@ int index_differs_from(struct repository *r, const char *def, const struct diff_flags *flags, int ita_invisible_in_index); +void show_interdiff(struct rev_info *, int indent); + /* * Fill the contents of the filespec "df", respecting any textconv defined by * its userdiff driver. The "driver" parameter must come from a diff --git a/interdiff.c b/interdiff.c deleted file mode 100644 index c81d680a6ce..00000000000 --- a/interdiff.c +++ /dev/null @@ -1,28 +0,0 @@ -#include "cache.h" -#include "commit.h" -#include "revision.h" -#include "interdiff.h" - -static struct strbuf *idiff_prefix_cb(struct diff_options *opt, void *data) -{ - return data; -} - -void show_interdiff(struct rev_info *rev, int indent) -{ - struct diff_options opts; - struct strbuf prefix = STRBUF_INIT; - - memcpy(&opts, &rev->diffopt, sizeof(opts)); - opts.output_format = DIFF_FORMAT_PATCH; - opts.output_prefix = idiff_prefix_cb; - strbuf_addchars(&prefix, ' ', indent); - opts.output_prefix_data = &prefix; - diff_setup_done(&opts); - - diff_tree_oid(rev->idiff_oid1, rev->idiff_oid2, "", &opts); - diffcore_std(&opts); - diff_flush(&opts); - - strbuf_release(&prefix); -} diff --git a/interdiff.h b/interdiff.h deleted file mode 100644 index 01c730a5c9d..00000000000 --- a/interdiff.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef INTERDIFF_H -#define INTERDIFF_H - -struct rev_info; - -void show_interdiff(struct rev_info *, int indent); - -#endif diff --git a/log-tree.c b/log-tree.c index 55a68d0c610..39bb362d5e5 100644 --- a/log-tree.c +++ b/log-tree.c @@ -15,7 +15,6 @@ #include "sequencer.h" #include "line-log.h" #include "help.h" -#include "interdiff.h" #include "range-diff.h" static struct decoration name_decoration = { "object names" }; |