aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/tabpage.c
diff options
context:
space:
mode:
authorWayne Rowcliffe <war1025@gmail.com>2014-08-23 12:03:14 -0500
committerWayne Rowcliffe <war1025@gmail.com>2014-09-22 09:31:09 -0500
commit683bc797a0d427d818f69dd4772e149cf94e6b12 (patch)
tree8bc73873f033b5a37696168c0ddc165869822770 /src/nvim/api/tabpage.c
parentb4ec6c1a4bacd6eaef958e242310ffaee94805dd (diff)
downloadrneovim-683bc797a0d427d818f69dd4772e149cf94e6b12.tar.gz
rneovim-683bc797a0d427d818f69dd4772e149cf94e6b12.tar.bz2
rneovim-683bc797a0d427d818f69dd4772e149cf94e6b12.zip
FOR_ALL_WINDOWS_IN_TAB and local variables in FOR_ALL_TAB_WINDOWS
Diffstat (limited to 'src/nvim/api/tabpage.c')
-rw-r--r--src/nvim/api/tabpage.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/src/nvim/api/tabpage.c b/src/nvim/api/tabpage.c
index 72168d936a..3e5d00671a 100644
--- a/src/nvim/api/tabpage.c
+++ b/src/nvim/api/tabpage.c
@@ -7,6 +7,7 @@
#include "nvim/api/private/defs.h"
#include "nvim/api/private/helpers.h"
#include "nvim/memory.h"
+#include "nvim/window.h"
/// Gets the number of windows in a tabpage
///
@@ -18,27 +19,18 @@ ArrayOf(Window) tabpage_get_windows(Tabpage tabpage, Error *err)
Array rv = ARRAY_DICT_INIT;
tabpage_T *tab = find_tab_by_handle(tabpage, err);
- if (!tab) {
+ if (!tab || !valid_tabpage(tab)) {
return rv;
}
- tabpage_T *tp;
- win_T *wp;
-
- FOR_ALL_TAB_WINDOWS(tp, wp) {
- if (tp != tab) {
- break;
- }
+ FOR_ALL_WINDOWS_IN_TAB(wp, tab) {
rv.size++;
}
rv.items = xmalloc(sizeof(Object) * rv.size);
size_t i = 0;
- FOR_ALL_TAB_WINDOWS(tp, wp) {
- if (tp != tab) {
- break;
- }
+ FOR_ALL_WINDOWS_IN_TAB(wp, tab) {
rv.items[i++] = WINDOW_OBJ(wp->handle);
}
@@ -90,18 +82,15 @@ Window tabpage_get_window(Tabpage tabpage, Error *err)
Window rv = 0;
tabpage_T *tab = find_tab_by_handle(tabpage, err);
- if (!tab) {
+ if (!tab || !valid_tabpage(tab)) {
return rv;
}
if (tab == curtab) {
return vim_get_current_window();
} else {
- tabpage_T *tp;
- win_T *wp;
-
- FOR_ALL_TAB_WINDOWS(tp, wp) {
- if (tp == tab && wp == tab->tp_curwin) {
+ FOR_ALL_WINDOWS_IN_TAB(wp, tab) {
+ if (wp == tab->tp_curwin) {
return wp->handle;
}
}