Fantastic, thank you.

On Sat, 13 Jul 2019 at 19:15, Bram Moolenaar <[email protected]> wrote:
>
>
> 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 -- [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].
> 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.

-- 
-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/CACoUkn66FfjHpUyt1ot5J5m69Cq9rO7D-Q4H0rzhvQiLXP-_Dg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui