diff src/evalfunc.c @ 34403:940c794b6ba7 v9.1.0126

patch 9.1.0126: Internal error when using upper-case mark in getregion() Commit: https://github.com/vim/vim/commit/421b597470c118871c7081de00dd065e0e000b7e Author: zeertzjq <zeertzjq@outlook.com> Date: Thu Feb 22 19:48:06 2024 +0100 patch 9.1.0126: Internal error when using upper-case mark in getregion() Problem: Internal error when passing mark in another buffer to getregion(). Solution: Don't allow marks in another buffer (zeertzjq) closes: #14076 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Internal error when passing mark in another buffer to getregion()
author Christian Brabandt <cb@256bit.org>
date Thu, 22 Feb 2024 20:00:05 +0100
parents 42f3769e8a59
children 5337abbdf88e
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5508,12 +5508,12 @@ f_getregion(typval_T *argvars, typval_T 
 
     // NOTE: var2fpos() returns static pointer.
     fp = var2fpos(&argvars[0], TRUE, &fnum, FALSE);
-    if (fp == NULL)
+    if (fp == NULL || (fnum >= 0 && fnum != curbuf->b_fnum))
 	return;
     p1 = *fp;
 
     fp = var2fpos(&argvars[1], TRUE, &fnum, FALSE);
-    if (fp == NULL)
+    if (fp == NULL || (fnum >= 0 && fnum != curbuf->b_fnum))
 	return;
     p2 = *fp;