Mercurial > vim
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 |