aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2018-11-06 07:49:20 -0500
committerJustin M. Keyes <justinkz@gmail.com>2018-11-06 13:49:20 +0100
commitf08869cff2eae65eede8df41fab274c77dd76c60 (patch)
treeb0ffeef87abc0b3a62c1b2e1ad20c7ccad032a3c /src/nvim/eval.c
parent5320eb57df01e57ace29ab841d6f912bc2c88ade (diff)
downloadrneovim-f08869cff2eae65eede8df41fab274c77dd76c60.tar.gz
rneovim-f08869cff2eae65eede8df41fab274c77dd76c60.tar.bz2
rneovim-f08869cff2eae65eede8df41fab274c77dd76c60.zip
vim-patch:8.1.0511: ml_get error when calling a function with a range (#9207)
Problem: ml_get error when calling a function with a range. Solution: Don't position the cursor after the last line. https://github.com/vim/vim/commit/9e353b5265bd7fa103caf4e5a9b3c99f344f548e
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 4e0e3f6f1f..2fb9bd7367 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -2728,6 +2728,12 @@ void ex_call(exarg_T *eap)
lnum = eap->line1;
for (; lnum <= eap->line2; lnum++) {
if (eap->addr_count > 0) { // -V560
+ if (lnum > curbuf->b_ml.ml_line_count) {
+ // If the function deleted lines or switched to another buffer
+ // the line number may become invalid.
+ EMSG(_(e_invrange));
+ break;
+ }
curwin->w_cursor.lnum = lnum;
curwin->w_cursor.col = 0;
curwin->w_cursor.coladd = 0;