updated for version 7.1-286
diff --git a/src/normal.c b/src/normal.c
index eda2ad3..d3ce6a8 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -8345,6 +8345,7 @@
int n;
int word_end;
int flag = FALSE;
+ pos_T startpos = curwin->w_cursor;
/*
* Set inclusive for the "E" and "e" command.
@@ -8405,8 +8406,9 @@
else
n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
- /* Don't leave the cursor on the NUL past the end of line. */
- if (n != FAIL)
+ /* Don't leave the cursor on the NUL past the end of line. Unless we
+ * didn't move it forward. */
+ if (lt(startpos, curwin->w_cursor))
adjust_cursor(cap->oap);
if (n == FAIL && cap->oap->op_type == OP_NOP)
diff --git a/src/version.c b/src/version.c
index ad56d62..ef3fc0d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 286,
+/**/
285,
/**/
284,