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>
This commit is contained in:
@ -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,
|
||||
|
Reference in New Issue
Block a user