summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-10-15 22:13:37 +0200
committerBram Moolenaar <Bram@vim.org>2017-10-15 22:13:37 +0200
commit44cc4cf72fdd12cd9a779031d443aac4254d51ae (patch)
treee0d017be95b6445a127a1105f39041374a5a7162
parent67418d97b457d2e27fe342472d3c9fd342ffc47f (diff)
patch 8.0.1201: "yL" is affected by 'scrolloff'v8.0.1201
Problem: "yL" is affected by 'scrolloff'. (Eli the Bearded) Solution: Don't use 'scrolloff' when an operator is pending.
-rw-r--r--runtime/doc/motion.txt10
-rw-r--r--src/normal.c4
-rw-r--r--src/version.c2
3 files changed, 13 insertions, 3 deletions
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 673d1c572a..85d0c4ace8 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1317,7 +1317,10 @@ the current line is included. You can then use "%" to go to the matching line.
H To line [count] from top (Home) of window (default:
first line on the window) on the first non-blank
character |linewise|. See also 'startofline' option.
- Cursor is adjusted for 'scrolloff' option.
+ Cursor is adjusted for 'scrolloff' option, unless an
+ operator is pending, in which case the text may
+ scroll. E.g. "yH" yanks from the first visible line
+ until the cursor line (inclusive).
*M*
M To Middle line of window, on the first non-blank
@@ -1327,7 +1330,10 @@ M To Middle line of window, on the first non-blank
L To line [count] from bottom of window (default: Last
line on the window) on the first non-blank character
|linewise|. See also 'startofline' option.
- Cursor is adjusted for 'scrolloff' option.
+ Cursor is adjusted for 'scrolloff' option, unless an
+ operator is pending, in which case the text may
+ scroll. E.g. "yL" yanks from the cursor to the last
+ visible line.
<LeftMouse> Moves to the position on the screen where the mouse
click is |exclusive|. See also |<LeftMouse>|. If the
diff --git a/src/normal.c b/src/normal.c
index d78a53bae2..fbeffe51e9 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5954,7 +5954,9 @@ nv_scroll(cmdarg_T *cap)
curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
}
- cursor_correct(); /* correct for 'so' */
+ /* Correct for 'so', except when an operator is pending. */
+ if (cap->oap->op_type == OP_NOP)
+ cursor_correct();
beginline(BL_SOL | BL_FIX);
}
diff --git a/src/version.c b/src/version.c
index 30a13fca26..edc29cc4fb 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1201,
+/**/
1200,
/**/
1199,