aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-09-22 12:32:46 -0700
committerGitHub <noreply@github.com>2019-09-22 12:32:46 -0700
commitfb26c38434f82af2a601a91c99adb40ecefa0d89 (patch)
treec641bdaf14179c71be50af8f4c6442c3ca5a4deb /src
parent6807779c68220e738b99486118c97c0ebc108b0e (diff)
parent6c3d34e4dfc7fd3f810dd78f9dec016540c13bda (diff)
downloadrneovim-fb26c38434f82af2a601a91c99adb40ecefa0d89.tar.gz
rneovim-fb26c38434f82af2a601a91c99adb40ecefa0d89.tar.bz2
rneovim-fb26c38434f82af2a601a91c99adb40ecefa0d89.zip
Merge #11076 from blueyed/fix-fold-patches
Fix fold patches: vim-patch:8.1.2052, vim-patch:8.1.2059 fix #11002
Diffstat (limited to 'src')
-rw-r--r--src/nvim/normal.c16
-rw-r--r--src/nvim/testdir/test_fold.vim12
2 files changed, 19 insertions, 9 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index e7e6d2b365..4dfde96e94 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -1553,9 +1553,11 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank)
if (!VIsual_active) {
if (hasFolding(oap->start.lnum, &oap->start.lnum, NULL))
oap->start.col = 0;
- if (hasFolding(curwin->w_cursor.lnum, NULL,
- &curwin->w_cursor.lnum))
+ if ((curwin->w_cursor.col > 0 || oap->inclusive)
+ && hasFolding(curwin->w_cursor.lnum, NULL,
+ &curwin->w_cursor.lnum)) {
curwin->w_cursor.col = (colnr_T)STRLEN(get_cursor_line_ptr());
+ }
}
oap->end = curwin->w_cursor;
curwin->w_cursor = oap->start;
@@ -5125,14 +5127,10 @@ static void nv_right(cmdarg_T *cap)
break;
} else if (PAST_LINE) {
curwin->w_set_curswant = true;
- if (virtual_active())
+ if (virtual_active()) {
oneright();
- else {
- if (has_mbyte)
- curwin->w_cursor.col +=
- (*mb_ptr2len)(get_cursor_pos_ptr());
- else
- ++curwin->w_cursor.col;
+ } else {
+ curwin->w_cursor.col += (*mb_ptr2len)(get_cursor_pos_ptr());
}
}
}
diff --git a/src/nvim/testdir/test_fold.vim b/src/nvim/testdir/test_fold.vim
index 3cb42579be..03723b3cb5 100644
--- a/src/nvim/testdir/test_fold.vim
+++ b/src/nvim/testdir/test_fold.vim
@@ -756,3 +756,15 @@ func Test_fold_delete_with_marker()
bwipe!
bwipe!
endfunc
+
+func Test_fold_delete_with_marker_and_whichwrap()
+ new
+ let content1 = ['']
+ let content2 = ['folded line 1 "{{{1', ' test', ' test2', ' test3', '', 'folded line 2 "{{{1', ' test', ' test2', ' test3']
+ call setline(1, content1 + content2)
+ set fdm=marker ww+=l
+ normal! x
+ call assert_equal(content2, getline(1, '$'))
+ set fdm& ww&
+ bwipe!
+endfunc