changeset 23260:ef4f890f02f6 v8.2.2176

patch 8.2.2176: crash with a sequence of fold commands Commit: https://github.com/vim/vim/commit/6a78f328442073c32d58eafc13ce5a1ca7729eeb Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 21 14:01:41 2020 +0100 patch 8.2.2176: crash with a sequence of fold commands Problem: Crash with a sequence of fold commands. Solution: Bail out when there are no folds at all. Add a test (Dominique Pell?) (closes #7515)
author Bram Moolenaar <Bram@vim.org>
date Mon, 21 Dec 2020 14:15:03 +0100
parents 1c0ee61d4bc9
children cda94e178e18
files src/fold.c src/testdir/test_fold.vim src/version.c
diffstat 3 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/fold.c
+++ b/src/fold.c
@@ -916,7 +916,7 @@ foldMoveTo(
 	{
 	    if (!foldFind(gap, curwin->w_cursor.lnum - lnum_off, &fp))
 	    {
-		if (!updown)
+		if (!updown || gap->ga_len == 0)
 		    break;
 
 		// When moving up, consider a fold above the cursor; when
--- a/src/testdir/test_fold.vim
+++ b/src/testdir/test_fold.vim
@@ -852,4 +852,11 @@ func Test_fold_create_delete_create()
   bwipe!
 endfunc
 
+" this was crashing
+func Test_fold_create_delete()
+  new
+  norm zFzFzdzj
+  bwipe!
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2176,
+/**/
     2175,
 /**/
     2174,