aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorprollings <patrickrollings@gmail.com>2016-08-04 14:22:45 +1000
committerJustin M. Keyes <justinkz@gmail.com>2016-08-04 00:22:45 -0400
commit0d93cd6c46e0b81e981197c4446aceb325325b5a (patch)
treebc736baf8ae595cc252dd91c6a7f49cd74fc4f2b /src/nvim/eval.c
parent08d11bd42f3cacc66f3d6097ff18c50059079f14 (diff)
downloadrneovim-0d93cd6c46e0b81e981197c4446aceb325325b5a.tar.gz
rneovim-0d93cd6c46e0b81e981197c4446aceb325325b5a.tar.bz2
rneovim-0d93cd6c46e0b81e981197c4446aceb325325b5a.zip
vim-patch:7.4.1557 (#5117)
Problem: Windows cannot be identified. Solution: Add a unique window number to each window and functions to use it. https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index a5333d74be..7839a7f645 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -6987,6 +6987,10 @@ static struct fst {
{ "virtcol", 1, 1, f_virtcol },
{ "visualmode", 0, 1, f_visualmode },
{ "wildmenumode", 0, 0, f_wildmenumode },
+ { "win_getid", 0, 2, f_win_getid },
+ { "win_gotoid", 1, 1, f_win_gotoid },
+ { "win_id2tabwin", 1, 1, f_win_id2tabwin },
+ { "win_id2win", 1, 1, f_win_id2win },
{ "winbufnr", 1, 1, f_winbufnr },
{ "wincol", 0, 0, f_wincol },
{ "winheight", 1, 1, f_winheight },
@@ -17150,6 +17154,32 @@ static void f_wildmenumode(typval_T *argvars, typval_T *rettv)
rettv->vval.v_number = 1;
}
+/// "win_getid()" function
+static void f_win_getid(typval_T *argvars, typval_T *rettv)
+{
+ rettv->vval.v_number = win_getid(argvars);
+}
+
+/// "win_gotoid()" function
+static void f_win_gotoid(typval_T *argvars, typval_T *rettv)
+{
+ rettv->vval.v_number = win_gotoid(argvars);
+}
+
+/// "win_id2tabwin()" function
+static void f_win_id2tabwin(typval_T *argvars, typval_T *rettv)
+{
+ if (rettv_list_alloc(rettv) != FAIL) {
+ win_id2tabwin(argvars, rettv->vval.v_list);
+ }
+}
+
+/// "win_id2win()" function
+static void f_win_id2win(typval_T *argvars, typval_T *rettv)
+{
+ rettv->vval.v_number = win_id2win(argvars);
+}
+
/*
* "winbufnr(nr)" function
*/
@@ -18437,7 +18467,7 @@ static void init_tv(typval_T *varp)
* caller of incompatible types: it sets *denote to TRUE if "denote"
* is not NULL or returns -1 otherwise.
*/
-static long get_tv_number(typval_T *varp)
+long get_tv_number(typval_T *varp)
{
int error = FALSE;