Mercurial > vim
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