Hi, The interdiff between v1 and v2 of PATCH 1/3. As you can see, I also added a cleanup of an intermediate xdlenv. Ciao, Dscho xdiff/xpatience.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/xdiff/xpatience.c b/xdiff/xpatience.c index 6687940..d01cbdd 100644 --- a/xdiff/xpatience.c +++ b/xdiff/xpatience.c @@ -309,6 +309,8 @@ static int fall_back_to_classic_diff(struct hashmap *map, memcpy(map->env->xdf1.rchg + line1 - 1, env.xdf1.rchg, count1); memcpy(map->env->xdf2.rchg + line2 - 1, env.xdf2.rchg, count2); + xdl_free_env(&env); + return 0; } @@ -368,6 +370,15 @@ int xdl_do_patience_diff(mmfile_t *file1, mmfile_t *file2, if (xdl_prepare_env(file1, file2, xpp, env) < 0) return -1; + /* + * It is a pity that xdl_cleanup_records() not only marks those + * lines as changes that are only present in one file, but also + * lines that have multiple matches and happen to be in a "run + * of discardable lines" that patience diff happens to split + * differently. + */ + memset(env->xdf1.rchg, 0, env->xdf1.nrec); + memset(env->xdf2.rchg, 0, env->xdf2.nrec); /* environment is cleaned up in xdl_diff() */ return patience_diff(file1, file2, xpp, env, 1, env->xdf1.nrec, 1, env->xdf2.nrec); -- 1.6.1.rc3.224.g95ac9 -- 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