aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_cmds.c
diff options
context:
space:
mode:
authorckelsel <ckelsel@hotmail.com>2017-09-10 16:43:01 +0800
committerckelsel <ckelsel@hotmail.com>2017-09-10 16:43:01 +0800
commitaf2dd6827299070d81218e9ba54646bfaf53607c (patch)
tree56345be9219a808efc0f34304f8e873b866a357c /src/nvim/ex_cmds.c
parent70c62d58d53f8d7d213e025f3f432e6521be8680 (diff)
parentd173d48177fd55928a9acd64a06d47371bbb6b09 (diff)
downloadrneovim-af2dd6827299070d81218e9ba54646bfaf53607c.tar.gz
rneovim-af2dd6827299070d81218e9ba54646bfaf53607c.tar.bz2
rneovim-af2dd6827299070d81218e9ba54646bfaf53607c.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'src/nvim/ex_cmds.c')
-rw-r--r--src/nvim/ex_cmds.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index 32dbf4cc69..4b3e02e5fd 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -3332,10 +3332,12 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout)
sub = regtilde(sub, p_magic);
// Check for a match on each line.
+ // If preview: limit to max('cmdwinheight', viewport).
linenr_T line2 = eap->line2;
for (linenr_T lnum = eap->line1;
- lnum <= line2 && !(got_quit || aborting())
- && (!preview || matched_lines.size <= (size_t)p_cwh);
+ lnum <= line2 && !got_quit && !aborting()
+ && (!preview || matched_lines.size < (size_t)p_cwh
+ || lnum <= curwin->w_botline);
lnum++) {
long nmatch = vim_regexec_multi(&regmatch, curwin, curbuf, lnum,
(colnr_T)0, NULL);