Merge branch 'jk/xdiff-interface'
The interface into "xdiff" library used to discover the offset and size of a generated patch hunk by first formatting it into the textual hunk header "@@ -n,m +k,l @@" and then parsing the numbers out. A new interface has been introduced to allow callers a more direct access to them. * jk/xdiff-interface: xdiff-interface: drop parse_hunk_header() range-diff: use a hunk callback diff: convert --check to use a hunk callback combine-diff: use an xdiff hunk callback diff: use hunk callback for word-diff diff: discard hunk headers for patch-ids earlier diff: avoid generating unused hunk header lines xdiff-interface: provide a separate consume callback for hunks xdiff: provide a separate emit callback for hunks
This commit is contained in:
10
range-diff.c
10
range-diff.c
@ -197,6 +197,12 @@ static void diffsize_consume(void *data, char *line, unsigned long len)
|
||||
(*(int *)data)++;
|
||||
}
|
||||
|
||||
static void diffsize_hunk(void *data, long ob, long on, long nb, long nn,
|
||||
const char *funcline, long funclen)
|
||||
{
|
||||
diffsize_consume(data, NULL, 0);
|
||||
}
|
||||
|
||||
static int diffsize(const char *a, const char *b)
|
||||
{
|
||||
xpparam_t pp = { 0 };
|
||||
@ -210,7 +216,9 @@ static int diffsize(const char *a, const char *b)
|
||||
mf2.size = strlen(b);
|
||||
|
||||
cfg.ctxlen = 3;
|
||||
if (!xdi_diff_outf(&mf1, &mf2, diffsize_consume, &count, &pp, &cfg))
|
||||
if (!xdi_diff_outf(&mf1, &mf2,
|
||||
diffsize_hunk, diffsize_consume, &count,
|
||||
&pp, &cfg))
|
||||
return count;
|
||||
|
||||
error(_("failed to generate diff"));
|
||||
|
||||
Reference in New Issue
Block a user