patch 8.1.2059: fix for "x" deleting a fold has side effects

Problem:    Fix for "x" deleting a fold has side effects.
Solution:   Fix it where the fold is included.
This commit is contained in:
Bram Moolenaar
2019-09-20 13:40:14 +02:00
parent 4bd782339e
commit 56ebbabea1
2 changed files with 6 additions and 10 deletions

View File

@ -1535,7 +1535,8 @@ do_pending_operator(cmdarg_T *cap, int old_col, int gui_yank)
{ {
if (hasFolding(oap->start.lnum, &oap->start.lnum, NULL)) if (hasFolding(oap->start.lnum, &oap->start.lnum, NULL))
oap->start.col = 0; oap->start.col = 0;
if (hasFolding(curwin->w_cursor.lnum, NULL, if ((curwin->w_cursor.col > 0 || oap->inclusive)
&& hasFolding(curwin->w_cursor.lnum, NULL,
&curwin->w_cursor.lnum)) &curwin->w_cursor.lnum))
curwin->w_cursor.col = (colnr_T)STRLEN(ml_get_curline()); curwin->w_cursor.col = (colnr_T)STRLEN(ml_get_curline());
} }
@ -6001,8 +6002,7 @@ nv_right(cmdarg_T *cap)
else else
{ {
if (has_mbyte) if (has_mbyte)
curwin->w_cursor.col += curwin->w_cursor.col += (*mb_ptr2len)(ml_get_cursor());
(*mb_ptr2len)(ml_get_cursor());
else else
++curwin->w_cursor.col; ++curwin->w_cursor.col;
} }
@ -7400,13 +7400,7 @@ nv_optrans(cmdarg_T *cap)
{ {
if (cap->count0) if (cap->count0)
stuffnumReadbuff(cap->count0); stuffnumReadbuff(cap->count0);
// If on an empty line and using 'x' and "l" is included in the stuffReadbuff(ar[(int)(vim_strchr(str, cap->cmdchar) - str)]);
// whichwrap option, do not delete the next line.
if (cap->cmdchar == 'x' && vim_strchr(p_ww, 'l') != NULL
&& gchar_cursor() == NUL)
stuffReadbuff((char_u *)"dd");
else
stuffReadbuff(ar[(int)(vim_strchr(str, cap->cmdchar) - str)]);
} }
} }
cap->opcount = 0; cap->opcount = 0;

View File

@ -757,6 +757,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2059,
/**/ /**/
2058, 2058,
/**/ /**/