[PATCH 0/5] xdiff: replace emit_func() with type-safe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]