summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-08-14 19:08:45 +0200
committerBram Moolenaar <Bram@vim.org>2016-08-14 19:08:45 +0200
commite59215c7dcae17b03daf39517560cfaa03314f5a (patch)
tree6c0a732a4d16d50668db89ea7d5a8f2cd8d35884 /src/window.c
parente56132bb4167f8b6ea4814cc2c99a71df3d07ff8 (diff)
downloadvim-e59215c7dcae17b03daf39517560cfaa03314f5a.zip
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 #974)
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/window.c b/src/window.c
index c6409e1e0..b015d1d01 100644
--- 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