To: vim_dev@googlegroups.com Subject: Patch 8.2.0082 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0082 Problem: When reusing a buffer listeners are not cleared. (Axel Forsman) Solution: Clear listeners when reusing a buffer. (closes #5431) Files: src/testdir/test_listener.vim, src/buffer.c *** ../vim-8.2.0081/src/testdir/test_listener.vim 2019-10-24 20:05:31.000000000 +0200 --- src/testdir/test_listener.vim 2020-01-03 20:18:07.063813933 +0100 *************** *** 295,297 **** --- 295,328 ---- delfunc EchoChanges call listener_remove(lid) endfunc + + func Test_listener_cleared_newbuf() + func Listener(bufnr, start, end, added, changes) + let g:gotCalled += 1 + endfunc + new + " check that listening works + let g:gotCalled = 0 + let lid = listener_add("Listener") + call feedkeys("axxx\", 'xt') + call listener_flush(bufnr()) + call assert_equal(1, g:gotCalled) + %bwipe! + let bufnr = bufnr() + let b:testing = 123 + let lid = listener_add("Listener") + enew! + " check buffer is reused + call assert_equal(bufnr, bufnr()) + call assert_false(exists('b:testing')) + + " check that listening stops when reusing the buffer + let g:gotCalled = 0 + call feedkeys("axxx\", 'xt') + call listener_flush(bufnr()) + call assert_equal(0, g:gotCalled) + unlet g:gotCalled + + bwipe! + delfunc Listener + endfunc *** ../vim-8.2.0081/src/buffer.c 2019-12-30 21:58:58.359667037 +0100 --- src/buffer.c 2020-01-03 20:21:19.075172081 +0100 *************** *** 979,984 **** --- 979,985 ---- hash_init(&buf->b_vars->dv_hashtab); init_changedtick(buf); CHANGEDTICK(buf) = tick; + remove_listeners(buf); } #endif uc_clear(&buf->b_ucmds); // clear local user commands *** ../vim-8.2.0081/src/version.c 2020-01-03 19:12:05.108214944 +0100 --- src/version.c 2020-01-03 20:17:01.044032346 +0100 *************** *** 744,745 **** --- 744,747 ---- { /* Add new patch number below this line */ + /**/ + 82, /**/ -- Compilation process failed successfully. /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///