Patch 8.0.1633
Problem: A TextChanged autocmd triggers when it is defined after creating a
buffer.
Solution: Set b_last_changedtick when opening a buffer. (Hirohito Highlight,
closes #2742)
Files: src/buffer.c, src/testdir/test_autocmd.vim
*** ../vim-8.0.1632/src/buffer.c 2018-03-04 20:14:08.236064419 +0100
--- src/buffer.c 2018-03-23 22:30:41.737228104 +0100
***************
*** 291,296 ****
--- 291,303 ----
unchanged(curbuf, FALSE);
save_file_ff(curbuf); /* keep this fileformat */
+ /* Set last_changedtick to avoid triggering a TextChanged autocommand
right
+ * after it was added. */
+ curbuf->b_last_changedtick = CHANGEDTICK(curbuf);
+ #ifdef FEAT_INS_EXPAND
+ curbuf->b_last_changedtick_pum = CHANGEDTICK(curbuf);
+ #endif
+
/* require "!" to overwrite the file, because it wasn't read completely */
#ifdef FEAT_EVAL
if (aborting())
*** ../vim-8.0.1632/src/testdir/test_autocmd.vim 2018-02-10
18:15:00.758098776 +0100
--- src/testdir/test_autocmd.vim 2018-03-23 22:37:03.326275731 +0100
***************
*** 1,5 ****
--- 1,7 ----
" Tests for autocommands
+ source shared.vim
+
func! s:cleanup_buffers() abort
for bnr in range(1, bufnr('$'))
if bufloaded(bnr) && bufnr('%') != bnr
***************
*** 1304,1306 ****
--- 1306,1327 ----
bw!
endfunc
+
+ func Test_Changed_FirstTime()
+ if !has('terminal') || has('gui_running')
+ return
+ endif
+ " Prepare file for TextChanged event.
+ call writefile([''], 'Xchanged.txt')
+ let buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile'],
{'term_rows': 3})
+ call assert_equal('running', term_getstatus(buf))
+ " It's only adding autocmd, so that no event occurs.
+ call term_sendkeys(buf, ":au! TextChanged <buffer> call writefile(['No'],
'Xchanged.txt')\<cr>")
+ call term_sendkeys(buf, "\<C-\\>\<C-N>:qa!\<cr>")
+ call WaitFor({-> term_getstatus(buf) == 'finished'})
+ call assert_equal([''], readfile('Xchanged.txt'))
+
+ " clean up
+ call delete('Xchanged.txt')
+ bwipe!
+ endfunc
*** ../vim-8.0.1632/src/version.c 2018-03-23 22:10:26.164804315 +0100
--- src/version.c 2018-03-23 22:32:14.116499665 +0100
***************
*** 768,769 ****
--- 768,771 ----
{ /* Add new patch number below this line */
+ /**/
+ 1633,
/**/
--
"Oh, no! NOT the Spanish Inquisition!"
"NOBODY expects the Spanish Inquisition!!!"
-- Monty Python sketch --
"Oh, no! NOT another option!"
"EVERYBODY expects another option!!!"
-- Discussion in vim-dev mailing list --
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.