summaryrefslogtreecommitdiff
path: root/builtin-blame.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-08-14 06:18:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-08-14 07:30:26 (GMT)
commit8a3f524bf2ac534b313a7d8e70cc164cef744949 (patch)
treeec390ebbf7cb3d7b441043d18956abf82b40e3ad /builtin-blame.c
parentb463776086a12c587f6d91c0347641fb6f7ddd72 (diff)
downloadgit-8a3f524bf2ac534b313a7d8e70cc164cef744949.zip
git-8a3f524bf2ac534b313a7d8e70cc164cef744949.tar.gz
git-8a3f524bf2ac534b313a7d8e70cc164cef744949.tar.bz2
xdiff-interface: hide the whole "xdiff_emit_state" business from the caller
This further enhances xdi_diff_outf() interface so that it takes two common parameters: the callback function that processes one line at a time, and a pointer to its application specific callback data structure. xdi_diff_outf() creates its own "xdiff_emit_state" structure and stashes these two away inside it, which is used by the lowest level output function in the xdiff_outf() callchain, consume_one(), to call back to the application layer. With this restructuring, we lift the requirement that the caller supplied callback data structure embeds xdiff_emit_state structure as its first member. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-blame.c')
-rw-r--r--builtin-blame.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/builtin-blame.c b/builtin-blame.c
index 8cca3b1..e4d12de 100644
--- a/builtin-blame.c
+++ b/builtin-blame.c
@@ -465,7 +465,6 @@ struct patch {
};
struct blame_diff_state {
- struct xdiff_emit_state xm;
struct patch *ret;
unsigned hunk_post_context;
unsigned hunk_in_pre_context : 1;
@@ -529,12 +528,11 @@ static struct patch *compare_buffer(mmfile_t *file_p, mmfile_t *file_o,
memset(&xecfg, 0, sizeof(xecfg));
xecfg.ctxlen = context;
memset(&state, 0, sizeof(state));
- state.xm.consume = process_u_diff;
state.ret = xmalloc(sizeof(struct patch));
state.ret->chunks = NULL;
state.ret->num = 0;
- xdi_diff_outf(file_p, file_o, &state.xm, &xpp, &xecfg, &ecb);
+ xdi_diff_outf(file_p, file_o, process_u_diff, &state, &xpp, &xecfg, &ecb);
if (state.ret->num) {
struct chunk *chunk;