diff options
-rw-r--r-- | src/nvim/fold.c | 3 | ||||
-rw-r--r-- | src/nvim/testdir/test_fold.vim | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/nvim/fold.c b/src/nvim/fold.c index 57001f77ed..96968a5d49 100644 --- a/src/nvim/fold.c +++ b/src/nvim/fold.c @@ -888,6 +888,9 @@ int foldMoveTo( // that moves the cursor is used. linenr_T lnum_off = 0; garray_T *gap = &curwin->w_folds; + if (gap->ga_len == 0) { + break; + } bool use_level = false; bool maybe_small = false; linenr_T lnum_found = curwin->w_cursor.lnum; diff --git a/src/nvim/testdir/test_fold.vim b/src/nvim/testdir/test_fold.vim index 692f6e4780..e4baa34e4a 100644 --- a/src/nvim/testdir/test_fold.vim +++ b/src/nvim/testdir/test_fold.vim @@ -795,3 +795,14 @@ func Test_fold_delete_first_line() bwipe! set foldmethod& endfunc + +" this was crashing +func Test_move_no_folds() + new + fold + setlocal fdm=expr + normal zj + bwipe! +endfunc + +" vim: shiftwidth=2 sts=2 expandtab |