diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-08-14 19:08:45 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-08-14 19:08:45 +0200 |
commit | e59215c7dcae17b03daf39517560cfaa03314f5a (patch) | |
tree | 6c0a732a4d16d50668db89ea7d5a8f2cd8d35884 /src/window.c | |
parent | e56132bb4167f8b6ea4814cc2c99a71df3d07ff8 (diff) | |
download | vim-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.c | 24 |
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 |