aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-09-15 04:35:49 -0400
committerJustin M. Keyes <justinkz@gmail.com>2014-09-15 04:35:49 -0400
commit5d35484203cb950a7ba0ed0d9428cb58b37212ff (patch)
tree6a3642a6b8bd409cb9659bb769e024ad9da8f8b6 /src/nvim/eval.c
parent53ef7038d84ead3094b828ac0fc540d10e99c1fe (diff)
parentdef28adfdd7a9ee643224e36f3f601f9f7222f46 (diff)
downloadrneovim-5d35484203cb950a7ba0ed0d9428cb58b37212ff.tar.gz
rneovim-5d35484203cb950a7ba0ed0d9428cb58b37212ff.tar.bz2
rneovim-5d35484203cb950a7ba0ed0d9428cb58b37212ff.zip
Merge pull request #1169 from splinterofchaos/arglistid
vim-patch:7.4.312
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 284d5367fc..ee6b94e849 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -6309,6 +6309,7 @@ static struct fst {
{"append", 2, 2, f_append},
{"argc", 0, 0, f_argc},
{"argidx", 0, 0, f_argidx},
+ {"arglistid", 0, 2, f_arglistid},
{"argv", 0, 1, f_argv},
{"asin", 1, 1, f_asin}, /* WJMc */
{"atan", 1, 1, f_atan},
@@ -7126,6 +7127,32 @@ static void f_argidx(typval_T *argvars, typval_T *rettv)
rettv->vval.v_number = curwin->w_arg_idx;
}
+/// "arglistid" function
+static void f_arglistid(typval_T *argvars, typval_T *rettv)
+{
+ rettv->vval.v_number = -1;
+ if (argvars[0].v_type != VAR_UNKNOWN) {
+ tabpage_T *tp = NULL;
+ if (argvars[1].v_type != VAR_UNKNOWN) {
+ long n = get_tv_number(&argvars[1]);
+ if (n >= 0) {
+ tp = find_tabpage(n);
+ }
+ } else {
+ tp = curtab;
+ }
+
+ if (tp != NULL) {
+ win_T *wp = find_win_by_nr(&argvars[0], tp);
+ if (wp != NULL) {
+ rettv->vval.v_number = wp->w_alist->id;
+ }
+ }
+ } else {
+ rettv->vval.v_number = curwin->w_alist->id;
+ }
+}
+
/*
* "argv(nr)" function
*/