diff src/evalbuffer.c @ 22679:9fa3f92248f6 v8.2.1888

patch 8.2.1888: Vim9: getbufline(-1, 1, '$') gives an error Commit: https://github.com/vim/vim/commit/e6e70a10f118ecfa9df2425e8724bc009bd09929 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Oct 22 18:23:38 2020 +0200 patch 8.2.1888: Vim9: getbufline(-1, 1, '$') gives an error Problem: Vim9: Getbufline(-1, 1, '$') gives an error. Solution: Return an empty list. (closes https://github.com/vim/vim/issues/7180)
author Bram Moolenaar <Bram@vim.org>
date Thu, 22 Oct 2020 18:30:04 +0200
parents bae2a3fa141f
children f6514ca9f45e
line wrap: on
line diff
--- a/src/evalbuffer.c
+++ b/src/evalbuffer.c
@@ -717,17 +717,19 @@ get_buffer_lines(
     void
 f_getbufline(typval_T *argvars, typval_T *rettv)
 {
-    linenr_T	lnum;
-    linenr_T	end;
+    linenr_T	lnum = 1;
+    linenr_T	end = 1;
     buf_T	*buf;
 
     buf = tv_get_buf_from_arg(&argvars[0]);
-
-    lnum = tv_get_lnum_buf(&argvars[1], buf);
-    if (argvars[2].v_type == VAR_UNKNOWN)
-	end = lnum;
-    else
-	end = tv_get_lnum_buf(&argvars[2], buf);
+    if (buf != NULL)
+    {
+	lnum = tv_get_lnum_buf(&argvars[1], buf);
+	if (argvars[2].v_type == VAR_UNKNOWN)
+	    end = lnum;
+	else
+	    end = tv_get_lnum_buf(&argvars[2], buf);
+    }
 
     get_buffer_lines(buf, lnum, end, TRUE, rettv);
 }