Merge #11076 from blueyed/fix-fold-patches

Fix fold patches: vim-patch:8.1.2052, vim-patch:8.1.2059
fix #11002
This commit is contained in:
Justin M. Keyes 2019-09-22 12:32:46 -07:00 committed by GitHub
commit fb26c38434
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 9 deletions

View File

@ -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());
}
}
}

View File

@ -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