Skip to content

Commit

Permalink
fix(vim.diff): correctly apply hunk offsets with linematch (neovim#20931
Browse files Browse the repository at this point in the history
)
  • Loading branch information
lewis6991 authored and yesean committed Mar 25, 2023
1 parent 2f39ba6 commit 0e3b1f2
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions src/nvim/lua/xdiff.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,15 @@ typedef struct {

static void lua_pushhunk(lua_State *lstate, long start_a, long count_a, long start_b, long count_b)
{
// Mimic extra offsets done by xdiff, see:
// src/xdiff/xemit.c:284
// src/xdiff/xutils.c:(356,368)
if (count_a > 0) {
start_a += 1;
}
if (count_b > 0) {
start_b += 1;
}
lua_createtable(lstate, 0, 0);
lua_pushinteger(lstate, start_a);
lua_rawseti(lstate, -2, 1);
Expand Down Expand Up @@ -116,15 +125,6 @@ static int write_string(void *priv, mmbuffer_t *mb, int nbuf)
// hunk_func callback used when opts.hunk_lines = true
static int hunk_locations_cb(long start_a, long count_a, long start_b, long count_b, void *cb_data)
{
// Mimic extra offsets done by xdiff, see:
// src/xdiff/xemit.c:284
// src/xdiff/xutils.c:(356,368)
if (count_a > 0) {
start_a += 1;
}
if (count_b > 0) {
start_b += 1;
}
hunkpriv_t *priv = (hunkpriv_t *)cb_data;
lua_State *lstate = priv->lstate;
if (priv->linematch) {
Expand Down

0 comments on commit 0e3b1f2

Please sign in to comment.