summaryrefslogtreecommitdiff
path: root/xdiff-interface.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-08-13 23:18:22 -0700
committerJunio C Hamano <gitster@pobox.com>2008-08-14 00:30:26 -0700
commit8a3f524bf2ac534b313a7d8e70cc164cef744949 (patch)
treeec390ebbf7cb3d7b441043d18956abf82b40e3ad /xdiff-interface.h
parentb463776086a12c587f6d91c0347641fb6f7ddd72 (diff)
downloadgit-8a3f524bf2ac534b313a7d8e70cc164cef744949.tar.gz
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 'xdiff-interface.h')
-rw-r--r--xdiff-interface.h11
1 files changed, 2 insertions, 9 deletions
diff --git a/xdiff-interface.h b/xdiff-interface.h
index f6a1ec2220..558492ba38 100644
--- a/xdiff-interface.h
+++ b/xdiff-interface.h
@@ -2,20 +2,13 @@
#define XDIFF_INTERFACE_H
#include "xdiff/xdiff.h"
-#include "strbuf.h"
-
-struct xdiff_emit_state;
typedef void (*xdiff_emit_consume_fn)(void *, char *, unsigned long);
-struct xdiff_emit_state {
- xdiff_emit_consume_fn consume;
- struct strbuf remainder;
-};
-
int xdi_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdemitconf_t const *xecfg, xdemitcb_t *ecb);
int xdi_diff_outf(mmfile_t *mf1, mmfile_t *mf2,
- struct xdiff_emit_state *state, xpparam_t const *xpp,
+ xdiff_emit_consume_fn fn, void *consume_callback_data,
+ xpparam_t const *xpp,
xdemitconf_t const *xecfg, xdemitcb_t *xecb);
int parse_hunk_header(char *line, int len,
int *ob, int *on,