# HG changeset patch # User Bram Moolenaar # Date 1634382004 -7200 # Node ID 46205b125fbd92d4644a666ba9f5e3b2aa7ea858 # Parent 5c9d305e5f188404bd5d2ea2a58a7eb1f36830d5 patch 8.2.3517: TextChanged does not trigger after TextChangedI Commit: https://github.com/vim/vim/commit/db3b44640d69ab27270691a3cab8d83cc93a0861 Author: Christian Brabandt Date: Sat Oct 16 11:58:55 2021 +0100 patch 8.2.3517: TextChanged does not trigger after TextChangedI Problem: TextChanged does not trigger after TextChangedI. Solution: Store the tick separately for TextChangedI. (Christian Brabandt, closes #8968, closes #8932) diff --git a/src/buffer.c b/src/buffer.c --- a/src/buffer.c +++ b/src/buffer.c @@ -327,6 +327,7 @@ open_buffer( // Set last_changedtick to avoid triggering a TextChanged autocommand right // after it was added. curbuf->b_last_changedtick = CHANGEDTICK(curbuf); + curbuf->b_last_changedtick_i = CHANGEDTICK(curbuf); curbuf->b_last_changedtick_pum = CHANGEDTICK(curbuf); // require "!" to overwrite the file, because it wasn't read completely diff --git a/src/bufwrite.c b/src/bufwrite.c --- a/src/bufwrite.c +++ b/src/bufwrite.c @@ -2422,8 +2422,8 @@ restore_backup: && (overwriting || vim_strchr(p_cpo, CPO_PLUS) != NULL)) { unchanged(buf, TRUE, FALSE); - // b:changedtick is may be incremented in unchanged() but that - // should not trigger a TextChanged event. + // b:changedtick may be incremented in unchanged() but that should not + // trigger a TextChanged event. if (buf->b_last_changedtick + 1 == CHANGEDTICK(buf)) buf->b_last_changedtick = CHANGEDTICK(buf); u_unchanged(buf); diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -1477,9 +1477,9 @@ ins_redraw(int ready) // not busy wi last_cursormoved = curwin->w_cursor; } - // Trigger TextChangedI if b_changedtick differs. + // Trigger TextChangedI if b_changedtick_i differs. if (ready && has_textchangedI() - && curbuf->b_last_changedtick != CHANGEDTICK(curbuf) + && curbuf->b_last_changedtick_i != CHANGEDTICK(curbuf) && !pum_visible()) { aco_save_T aco; @@ -1489,15 +1489,15 @@ ins_redraw(int ready) // not busy wi aucmd_prepbuf(&aco, curbuf); apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf); aucmd_restbuf(&aco); - curbuf->b_last_changedtick = CHANGEDTICK(curbuf); + curbuf->b_last_changedtick_i = CHANGEDTICK(curbuf); if (tick != CHANGEDTICK(curbuf)) // see ins_apply_autocmds() u_save(curwin->w_cursor.lnum, (linenr_T)(curwin->w_cursor.lnum + 1)); } - // Trigger TextChangedP if b_changedtick differs. When the popupmenu closes - // TextChangedI will need to trigger for backwards compatibility, thus use - // different b_last_changedtick* variables. + // Trigger TextChangedP if b_changedtick_pum differs. When the popupmenu + // closes TextChangedI will need to trigger for backwards compatibility, + // thus use different b_last_changedtick* variables. if (ready && has_textchangedP() && curbuf->b_last_changedtick_pum != CHANGEDTICK(curbuf) && pum_visible()) diff --git a/src/structs.h b/src/structs.h --- a/src/structs.h +++ b/src/structs.h @@ -2701,10 +2701,10 @@ struct file_buffer // incremented for each change, also for undo #define CHANGEDTICK(buf) ((buf)->b_ct_di.di_tv.vval.v_number) - varnumber_T b_last_changedtick; // b:changedtick when TextChanged or - // TextChangedI was last triggered. - varnumber_T b_last_changedtick_pum; // b:changedtick when TextChangedP was + varnumber_T b_last_changedtick; // b:changedtick when TextChanged was // last triggered. + varnumber_T b_last_changedtick_pum; // b:changedtick for TextChangedP + varnumber_T b_last_changedtick_i; // b:changedtick for TextChangedI int b_saving; // Set to TRUE if we are in the middle of // saving the buffer. diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index db1efba12db6f369d75e557d954da73747003ed7..7faa4551d17afe35cbf889618879b2b35d4f0326 GIT binary patch literal 86033 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 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3517, +/**/ 3516, /**/ 3515,