git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "René Scharfe" <rene.scharfe@lsrfire.ath.cx>
To: git discussion list <git@vger.kernel.org>
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 0/5] xdiff: replace emit_func() with type-safe
Date: Wed, 09 May 2012 22:19:10 +0200	[thread overview]
Message-ID: <4FAAD13E.8030806@lsrfire.ath.cx> (raw)

Commit ef2e62fe added the ability to bypass the creation of textual diffs
and to access diff data directly, through the added emit_func member of
xdemitconf_t.  This function pointer has a type of "void (*)()", because
"int (*)(xdfenv_t *, xdchange_t *, xdemitcb_t *, xdemitconf_t const *)"
(its real type) would be difficult to export due to the many internal
types in that signature.

This feature is currently used twice in git blame, through the function
xdi_diff_hunks().  Both cases only need to know which lines are affected
by the different hunks of a diff, i.e. the numbers shown in hunk headers
of unified diffs.

This patch series adds a simpler mechanism to accommodate these two
callers, in a type-safe way, without exporting too many internal types
of libxdiff.  The last patch removes the old functions.

  xdiff: add hunk_func()
  blame: use hunk_func(), part 1
  blame: use hunk_func(), part 2
  blame: factor out helper for calling xdi_diff()
  xdiff: remove emit_func() and xdi_diff_hunks()

 builtin/blame.c   |   53 +++++++++++++++++++++++++++++++----------------------
 xdiff-interface.c |   44 --------------------------------------------
 xdiff-interface.h |    4 ----
 xdiff/xdiff.h     |    6 +++++-
 xdiff/xdiffi.c    |   17 +++++++++++++++--
 5 files changed, 51 insertions(+), 73 deletions(-)

-- 
1.7.10.1

             reply	other threads:[~2012-05-09 20:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-09 20:19 René Scharfe [this message]
2012-05-09 20:20 ` [PATCH 1/5] xdiff: add hunk_func() René Scharfe
2012-05-09 20:21 ` [PATCH 2/5] blame: use hunk_func(), part 1 René Scharfe
2012-05-09 20:22 ` [PATCH 3/5] blame: use hunk_func(), part 2 René Scharfe
2012-05-09 20:23 ` [PATCH 4/5] blame: factor out helper for calling xdi_diff() René Scharfe
2012-05-09 20:24 ` [PATCH 5/5] xdiff: remove emit_func() and xdi_diff_hunks() René Scharfe
2012-05-18  8:28 ` [PATCH 0/5] xdiff: replace emit_func() with type-safe Thomas Rast

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=4FAAD13E.8030806@lsrfire.ath.cx \
    --to=rene.scharfe@lsrfire.ath.cx \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).