diff src/window.c @ 9875:42adbf172ecd v7.4.2212

commit https://github.com/vim/vim/commit/e59215c7dcae17b03daf39517560cfaa03314f5a Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 14 19:08:45 2016 +0200 patch 7.4.2212 Problem: Mark " is not set when closing a window in another tab. (Guraga) Solution: Check all tabs for the window to be valid. (based on patch by Hirohito Higashi, closes https://github.com/vim/vim/issues/974)
author Christian Brabandt <cb@256bit.org>
date Sun, 14 Aug 2016 19:15:05 +0200
parents 3e96d9ed2ca1
children 9560a2eb7968
line wrap: on
line diff
--- a/src/window.c
+++ b/src/window.c
@@ -1358,7 +1358,7 @@ win_init_some(win_T *newp, win_T *oldp)
 
 #if defined(FEAT_WINDOWS) || defined(PROTO)
 /*
- * Check if "win" is a pointer to an existing window.
+ * Check if "win" is a pointer to an existing window in the current tab page.
  */
     int
 win_valid(win_T *win)
@@ -1374,6 +1374,28 @@ win_valid(win_T *win)
 }
 
 /*
+ * Check if "win" is a pointer to an existing window in any tab page.
+ */
+    int
+win_valid_any_tab(win_T *win)
+{
+    win_T	*wp;
+    tabpage_T	*tp;
+
+    if (win == NULL)
+	return FALSE;
+    FOR_ALL_TABPAGES(tp)
+    {
+	FOR_ALL_WINDOWS_IN_TAB(tp, wp)
+	{
+	    if (wp == win)
+		return TRUE;
+	}
+    }
+    return FALSE;
+}
+
+/*
  * Return the number of windows.
  */
     int