comparison src/testdir/test_functions.vim @ 11325:77f3b7316d8b v8.0.0548

patch 8.0.0548: saving the redo buffer only works one time commit https://github.com/vim/vim/commit/d4863aa99e0527e9505c79cbeafc68a6832200bf Author: Bram Moolenaar <Bram@vim.org> Date: Fri Apr 7 19:50:12 2017 +0200 patch 8.0.0548: saving the redo buffer only works one time Problem: Saving the redo buffer only works one time, resulting in the "." command not working well for a function call inside another function call. (Ingo Karkat) Solution: Save the redo buffer at every user function call. (closes #1619)
author Christian Brabandt <cb@256bit.org>
date Fri, 07 Apr 2017 20:00:04 +0200
parents 7f355d8cd634
children 3933a3bf9385
comparison
equal deleted inserted replaced
11324:c9adf54ef624 11325:77f3b7316d8b
754 call win_gotoid(prev_id) 754 call win_gotoid(prev_id)
755 bwipe! 755 bwipe!
756 call win_gotoid(dum1_id) 756 call win_gotoid(dum1_id)
757 bwipe! 757 bwipe!
758 endfunc 758 endfunc
759
760 func Test_redo_in_nested_functions()
761 nnoremap g. :set opfunc=Operator<CR>g@
762 function Operator( type, ... )
763 let @x = 'XXX'
764 execute 'normal! g`[' . (a:type ==# 'line' ? 'V' : 'v') . 'g`]' . '"xp'
765 endfunction
766
767 function! Apply()
768 5,6normal! .
769 endfunction
770
771 new
772 call setline(1, repeat(['some "quoted" text', 'more "quoted" text'], 3))
773 1normal g.i"
774 call assert_equal('some "XXX" text', getline(1))
775 3,4normal .
776 call assert_equal('some "XXX" text', getline(3))
777 call assert_equal('more "XXX" text', getline(4))
778 call Apply()
779 call assert_equal('some "XXX" text', getline(5))
780 call assert_equal('more "XXX" text', getline(6))
781 bwipe!
782
783 nunmap g.
784 delfunc Operator
785 delfunc Apply
786 endfunc