# HG changeset patch # User Bram Moolenaar # Date 1608556503 -3600 # Node ID ef4f890f02f68c4aa3317146660d7107cc1a7cc0 # Parent 1c0ee61d4bc9c4a85332f0d791f816efca5db064 patch 8.2.2176: crash with a sequence of fold commands Commit: https://github.com/vim/vim/commit/6a78f328442073c32d58eafc13ce5a1ca7729eeb Author: Bram Moolenaar 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) diff --git a/src/fold.c b/src/fold.c --- 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 diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim --- 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 diff --git a/src/version.c b/src/version.c --- 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,