Mercurial > vim
diff src/testdir/test_fold.vim @ 12471:f6534b99b76f v8.0.1115
patch 8.0.1115: crash when using foldtextresult() recursively
commit https://github.com/vim/vim/commit/495b7dd213e096361e6f15e7aed313c1d63d9d3e
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 16 17:19:22 2017 +0200
patch 8.0.1115: crash when using foldtextresult() recursively
Problem: Crash when using foldtextresult() recursively.
Solution: Avoid recursive calls. (Yasuhiro Matsumoto, closes https://github.com/vim/vim/issues/2098)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 16 Sep 2017 17:30:04 +0200 |
parents | dc2800c3572b |
children | 0b6c09957b43 |
line wrap: on
line diff
--- a/src/testdir/test_fold.vim +++ b/src/testdir/test_fold.vim @@ -278,6 +278,7 @@ func Test_move_folds_around_manual() call assert_equal(0, foldlevel(6)) call assert_equal(9, foldclosedend(7)) call assert_equal([-1, 2, 2, 2, 2, -1, 7, 7, 7, -1], map(range(1, line('$')), 'foldclosed(v:val)')) + %d " Ensure moving around the edges still works. call setline(1, PrepIndent("a") + repeat(["a"], 3) + ["\ta"]) @@ -446,3 +447,16 @@ func Test_fold_error() set foldmethod& bw! endfunc + +func Test_foldtext_recursive() + new + call setline(1, ['{{{', 'some text', '}}}']) + setlocal foldenable foldmethod=marker foldtext=foldtextresult(v\:foldstart) + " This was crashing because of endless recursion. + 2foldclose + redraw + call assert_equal(1, foldlevel(2)) + call assert_equal(1, foldclosed(2)) + call assert_equal(3, foldclosedend(2)) + bwipe! +endfunc