All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sunshine <sunshine@sunshineco.com>
To: git@vger.kernel.org
Cc: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Duy Nguyen" <pclouds@gmail.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Stefan Beller" <sbeller@google.com>,
	"Eric Sunshine" <sunshine@sunshineco.com>
Subject: [PATCH 04/14] interdiff: teach show_interdiff() to indent interdiff
Date: Sun, 22 Jul 2018 05:57:07 -0400	[thread overview]
Message-ID: <20180722095717.17912-5-sunshine@sunshineco.com> (raw)
In-Reply-To: <20180722095717.17912-1-sunshine@sunshineco.com>

A future change will allow "git format-patch --interdiff=<prev> -1" to
insert an interdiff into the commentary section of the lone patch of a
1-patch series. However, to prevent the inserted interdiff from
confusing git-am, as well as human readers, it needs to be indented.
Therefore, teach show_interdiff() how to indent.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
---
 builtin/log.c |  2 +-
 interdiff.c   | 13 ++++++++++++-
 interdiff.h   |  2 +-
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/builtin/log.c b/builtin/log.c
index 99ddfe8bb0..8078a43d14 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -1086,7 +1086,7 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
 
 	if (rev->idiff_oid1) {
 		fprintf_ln(rev->diffopt.file, "%s", rev->idiff_title);
-		show_interdiff(rev);
+		show_interdiff(rev, 0);
 	}
 }
 
diff --git a/interdiff.c b/interdiff.c
index d0fac10c7c..c81d680a6c 100644
--- a/interdiff.c
+++ b/interdiff.c
@@ -3,15 +3,26 @@
 #include "revision.h"
 #include "interdiff.h"
 
-void show_interdiff(struct rev_info *rev)
+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
index 793c0144fe..01c730a5c9 100644
--- a/interdiff.h
+++ b/interdiff.h
@@ -3,6 +3,6 @@
 
 struct rev_info;
 
-void show_interdiff(struct rev_info *);
+void show_interdiff(struct rev_info *, int indent);
 
 #endif
-- 
2.18.0.345.g5c9ce644c3


  parent reply	other threads:[~2018-07-22  9:58 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-22  9:57 [PATCH 00/14] format-patch: add --interdiff and --range-diff options Eric Sunshine
2018-07-22  9:57 ` [PATCH 01/14] format-patch: allow additional generated content in make_cover_letter() Eric Sunshine
2018-07-22  9:57 ` [PATCH 02/14] format-patch: add --interdiff option to embed diff in cover letter Eric Sunshine
2018-07-22 10:31   ` Eric Sunshine
2018-07-23 16:02   ` Duy Nguyen
2018-07-23 19:18     ` Eric Sunshine
2018-07-23 21:36       ` Junio C Hamano
2018-07-22  9:57 ` [PATCH 03/14] format-patch: teach --interdiff to respect -v/--reroll-count Eric Sunshine
2018-07-23 16:12   ` Duy Nguyen
2018-07-23 19:32     ` Eric Sunshine
2018-07-22  9:57 ` Eric Sunshine [this message]
2018-07-22  9:57 ` [PATCH 05/14] log-tree: show_log: make commentary block delimiting reusable Eric Sunshine
2018-07-22  9:57 ` [PATCH 06/14] format-patch: allow --interdiff to apply to a lone-patch Eric Sunshine
2018-07-23 16:22   ` Duy Nguyen
2018-07-23 19:46     ` Eric Sunshine
2018-07-22  9:57 ` [PATCH 07/14] range-diff: respect diff_option.file rather than assuming 'stdout' Eric Sunshine
2018-07-23 22:59   ` Stefan Beller
2018-07-23 23:20     ` Eric Sunshine
2018-07-25 18:25       ` Junio C Hamano
2018-07-22  9:57 ` [PATCH 08/14] range-diff: publish default creation factor Eric Sunshine
2018-07-22  9:57 ` [PATCH 09/14] range-diff: relieve callers of low-level configuration burden Eric Sunshine
2018-07-22  9:57 ` [PATCH 10/14] format-patch: add --range-diff option to embed diff in cover letter Eric Sunshine
2018-07-23 16:28   ` Duy Nguyen
2018-07-23 19:58     ` Eric Sunshine
2018-07-25 17:29       ` Junio C Hamano
2018-07-25 19:30         ` Eric Sunshine
2018-07-25 20:32           ` Junio C Hamano
2018-07-25 17:38       ` Duy Nguyen
2018-07-22  9:57 ` [PATCH 11/14] format-patch: extend --range-diff to accept revision range Eric Sunshine
2018-07-25 20:53   ` Junio C Hamano
2018-09-07  9:15     ` Eric Sunshine
2018-07-22  9:57 ` [PATCH 12/14] format-patch: teach --range-diff to respect -v/--reroll-count Eric Sunshine
2018-07-22  9:57 ` [PATCH 13/14] format-patch: add --creation-factor tweak for --range-diff Eric Sunshine
2018-07-22  9:57 ` [PATCH 14/14] format-patch: allow --range-diff to apply to a lone-patch Eric Sunshine
2018-07-25 21:07   ` Junio C Hamano
2018-09-07  8:46     ` Eric Sunshine
2018-07-23 16:32 ` [PATCH 00/14] format-patch: add --interdiff and --range-diff options Duy Nguyen
2018-07-23 20:03   ` Eric Sunshine

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180722095717.17912-5-sunshine@sunshineco.com \
    --to=sunshine@sunshineco.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=pclouds@gmail.com \
    --cc=sbeller@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.