Patch 8.1.1681

13 views
Skip to first unread message

Bram Moolenaar

unread,
Jul 13, 2019, 2:15:08 PM7/13/19
to vim...@googlegroups.com

Patch 8.1.1681
Problem: Insert stray "{" when listener gets buffer line. (Paul Jolly)
Solution: Flush the cached line after invoking listeners. (closes #4455)
Files: src/memline.c, src/testdir/test_listener.vim


*** ../vim-8.1.1680/src/memline.c 2019-06-18 22:53:19.018129835 +0200
--- src/memline.c 2019-07-13 20:11:02.755661155 +0200
***************
*** 2836,2843 ****

#ifdef FEAT_EVAL
// When inserting above recorded changes: flush the changes before changing
! // the text.
may_invoke_listeners(buf, lnum + 1, lnum + 1, 1);
#endif

#ifdef FEAT_TEXT_PROP
--- 2836,2845 ----

#ifdef FEAT_EVAL
// When inserting above recorded changes: flush the changes before changing
! // the text. Then flush the cached line, it may become invalid.
may_invoke_listeners(buf, lnum + 1, lnum + 1, 1);
+ if (curbuf->b_ml.ml_line_lnum != 0)
+ ml_flush_line(curbuf);
#endif

#ifdef FEAT_TEXT_PROP
*** ../vim-8.1.1680/src/testdir/test_listener.vim 2019-06-20 03:45:31.175536929 +0200
--- src/testdir/test_listener.vim 2019-07-13 20:10:35.639776461 +0200
***************
*** 242,244 ****
--- 242,270 ----
delfunc MyListener
bwipe!
endfunc
+
+ " This verifies the fix for issue #4455
+ func Test_listener_caches_buffer_line()
+ new
+ inoremap <silent> <CR> <CR><Esc>O
+
+ function EchoChanges(bufnr, start, end, added, changes)
+ for l:change in a:changes
+ let text = getbufline(a:bufnr, l:change.lnum, l:change.end-1+l:change.added)
+ endfor
+ endfunction
+ let lid = listener_add("EchoChanges")
+ set autoindent
+ set cindent
+
+ call setline(1, ["{", "\tif true {}", "}"])
+ exe "normal /{}\nl"
+ call feedkeys("i\r\e", 'xt')
+ call assert_equal(["{", "\tif true {", "", "\t}", "}"], getline(1, 5))
+
+ bwipe!
+ delfunc EchoChanges
+ call listener_remove(lid)
+ iunmap <CR>
+ set nocindent
+ endfunc
*** ../vim-8.1.1680/src/version.c 2019-07-13 18:17:20.448328434 +0200
--- src/version.c 2019-07-13 19:48:30.488967986 +0200
***************
*** 779,780 ****
--- 779,782 ----
{ /* Add new patch number below this line */
+ /**/
+ 1681,
/**/

--
TALL KNIGHT: We are now no longer the Knights Who Say Ni!
ONE KNIGHT: Ni!
OTHERS: Sh!
ONE KNIGHT: (whispers) Sorry.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

/// Bram Moolenaar -- Br...@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 ///

Paul Jolly

unread,
Jul 13, 2019, 3:18:01 PM7/13/19
to Vim Dev Mailing List
Fantastic, thank you.
> --
> --
> 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 vim_dev+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/201907131815.x6DIF0nW003021%40masaka.moolenaar.net.
> For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages