mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
updated for version 7.1-220
This commit is contained in:
51
src/normal.c
51
src/normal.c
@@ -150,6 +150,7 @@ static void nv_pipe __ARGS((cmdarg_T *cap));
|
|||||||
static void nv_bck_word __ARGS((cmdarg_T *cap));
|
static void nv_bck_word __ARGS((cmdarg_T *cap));
|
||||||
static void nv_wordcmd __ARGS((cmdarg_T *cap));
|
static void nv_wordcmd __ARGS((cmdarg_T *cap));
|
||||||
static void nv_beginline __ARGS((cmdarg_T *cap));
|
static void nv_beginline __ARGS((cmdarg_T *cap));
|
||||||
|
static void adjust_cursor __ARGS((oparg_T *oap));
|
||||||
#ifdef FEAT_VISUAL
|
#ifdef FEAT_VISUAL
|
||||||
static void adjust_for_sel __ARGS((cmdarg_T *cap));
|
static void adjust_for_sel __ARGS((cmdarg_T *cap));
|
||||||
static int unadjust_for_sel __ARGS((void));
|
static int unadjust_for_sel __ARGS((void));
|
||||||
@@ -6567,12 +6568,8 @@ nv_brace(cap)
|
|||||||
clearopbeep(cap->oap);
|
clearopbeep(cap->oap);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Don't leave the cursor on the NUL past a line */
|
/* Don't leave the cursor on the NUL past end of line. */
|
||||||
if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
|
adjust_cursor(cap->oap);
|
||||||
{
|
|
||||||
--curwin->w_cursor.col;
|
|
||||||
cap->oap->inclusive = TRUE;
|
|
||||||
}
|
|
||||||
#ifdef FEAT_VIRTUALEDIT
|
#ifdef FEAT_VIRTUALEDIT
|
||||||
curwin->w_cursor.coladd = 0;
|
curwin->w_cursor.coladd = 0;
|
||||||
#endif
|
#endif
|
||||||
@@ -8408,12 +8405,9 @@ nv_wordcmd(cap)
|
|||||||
else
|
else
|
||||||
n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
|
n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
|
||||||
|
|
||||||
/* Don't leave the cursor on the NUL past a line */
|
/* Don't leave the cursor on the NUL past the end of line. */
|
||||||
if (n != FAIL && curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
|
if (n != FAIL)
|
||||||
{
|
adjust_cursor(cap->oap);
|
||||||
--curwin->w_cursor.col;
|
|
||||||
cap->oap->inclusive = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (n == FAIL && cap->oap->op_type == OP_NOP)
|
if (n == FAIL && cap->oap->op_type == OP_NOP)
|
||||||
clearopbeep(cap->oap);
|
clearopbeep(cap->oap);
|
||||||
@@ -8429,6 +8423,39 @@ nv_wordcmd(cap)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Used after a movement command: If the cursor ends up on the NUL after the
|
||||||
|
* end of the line, may move it back to the last character and make the motion
|
||||||
|
* inclusive.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
adjust_cursor(oap)
|
||||||
|
oparg_T *oap;
|
||||||
|
{
|
||||||
|
/* The cursor cannot remain on the NUL when:
|
||||||
|
* - the column is > 0
|
||||||
|
* - not in Visual mode or 'selection' is "o"
|
||||||
|
* - 'virtualedit' is not "all" and not "onemore".
|
||||||
|
*/
|
||||||
|
if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL
|
||||||
|
#ifdef FEAT_VISUAL
|
||||||
|
&& (!VIsual_active || *p_sel == 'o')
|
||||||
|
#endif
|
||||||
|
#ifdef FEAT_VIRTUALEDIT
|
||||||
|
&& !virtual_active() && (ve_flags & VE_ONEMORE) == 0
|
||||||
|
#endif
|
||||||
|
)
|
||||||
|
{
|
||||||
|
--curwin->w_cursor.col;
|
||||||
|
#ifdef FEAT_MBYTE
|
||||||
|
/* prevent cursor from moving on the trail byte */
|
||||||
|
if (has_mbyte)
|
||||||
|
mb_adjust_cursor();
|
||||||
|
#endif
|
||||||
|
oap->inclusive = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "0" and "^" commands.
|
* "0" and "^" commands.
|
||||||
* cap->arg is the argument for beginline().
|
* cap->arg is the argument for beginline().
|
||||||
|
@@ -666,6 +666,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 */
|
||||||
|
/**/
|
||||||
|
220,
|
||||||
/**/
|
/**/
|
||||||
219,
|
219,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user