|
|
22c937 |
To: vim_dev@googlegroups.com
|
|
|
22c937 |
Subject: Patch 7.4.312
|
|
|
22c937 |
Fcc: outbox
|
|
|
22c937 |
From: Bram Moolenaar <Bram@moolenaar.net>
|
|
|
22c937 |
Mime-Version: 1.0
|
|
|
22c937 |
Content-Type: text/plain; charset=UTF-8
|
|
|
22c937 |
Content-Transfer-Encoding: 8bit
|
|
|
22c937 |
------------
|
|
|
22c937 |
|
|
|
22c937 |
Patch 7.4.312
|
|
|
22c937 |
Problem: Cannot figure out what argument list is being used for a window.
|
|
|
22c937 |
Solution: Add the arglistid() function. (Marcin Szamotulski)
|
|
|
22c937 |
Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c,
|
|
|
22c937 |
src/ex_docmd.c, src/globals.h, src/structs.h, src/main.c
|
|
|
22c937 |
|
|
|
22c937 |
|
|
|
22c937 |
*** ../vim-7.4.311/runtime/doc/eval.txt 2014-05-28 16:47:11.396174926 +0200
|
|
|
22c937 |
--- runtime/doc/eval.txt 2014-05-28 18:00:06.248213223 +0200
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 1716,1721 ****
|
|
|
22c937 |
--- 1716,1723 ----
|
|
|
22c937 |
append( {lnum}, {list}) Number append lines {list} below line {lnum}
|
|
|
22c937 |
argc() Number number of files in the argument list
|
|
|
22c937 |
argidx() Number current index in the argument list
|
|
|
22c937 |
+ arglistid( [{winnr}, [ {tabnr}]])
|
|
|
22c937 |
+ Number argument list id
|
|
|
22c937 |
argv( {nr}) String {nr} entry of the argument list
|
|
|
22c937 |
argv( ) List the argument list
|
|
|
22c937 |
asin( {expr}) Float arc sine of {expr}
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 2103,2108 ****
|
|
|
22c937 |
--- 2105,2122 ----
|
|
|
22c937 |
argidx() The result is the current index in the argument list. 0 is
|
|
|
22c937 |
the first file. argc() - 1 is the last one. See |arglist|.
|
|
|
22c937 |
|
|
|
22c937 |
+ *arglistid()*
|
|
|
22c937 |
+ arglistid([{winnr}, [ {tabnr} ]])
|
|
|
22c937 |
+ Return the argument list ID. This is a number which
|
|
|
22c937 |
+ identifies the argument list being used. Zero is used for the
|
|
|
22c937 |
+ global argument list.
|
|
|
22c937 |
+ Return zero if the arguments are invalid.
|
|
|
22c937 |
+
|
|
|
22c937 |
+ Without arguments use the current window.
|
|
|
22c937 |
+ With {winnr} only use this window in the current tab page.
|
|
|
22c937 |
+ With {winnr} and {tabnr} use the window in the specified tab
|
|
|
22c937 |
+ page.
|
|
|
22c937 |
+
|
|
|
22c937 |
*argv()*
|
|
|
22c937 |
argv([{nr}]) The result is the {nr}th file in the argument list of the
|
|
|
22c937 |
current window. See |arglist|. "argv(0)" is the first one.
|
|
|
22c937 |
*** ../vim-7.4.311/runtime/doc/usr_41.txt 2014-03-25 18:23:27.054087691 +0100
|
|
|
22c937 |
--- runtime/doc/usr_41.txt 2014-05-28 18:07:43.096217222 +0200
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 770,775 ****
|
|
|
22c937 |
--- 772,778 ----
|
|
|
22c937 |
Buffers, windows and the argument list:
|
|
|
22c937 |
argc() number of entries in the argument list
|
|
|
22c937 |
argidx() current position in the argument list
|
|
|
22c937 |
+ arglistid() get id of the argument list
|
|
|
22c937 |
argv() get one entry from the argument list
|
|
|
22c937 |
bufexists() check if a buffer exists
|
|
|
22c937 |
buflisted() check if a buffer exists and is listed
|
|
|
22c937 |
*** ../vim-7.4.311/src/eval.c 2014-05-28 16:47:11.392174926 +0200
|
|
|
22c937 |
--- src/eval.c 2014-05-28 18:11:10.264219035 +0200
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 463,468 ****
|
|
|
22c937 |
--- 463,469 ----
|
|
|
22c937 |
static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
|
|
|
22c937 |
static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
|
|
|
22c937 |
static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
|
|
|
22c937 |
+ static void f_arglistid __ARGS((typval_T *argvars, typval_T *rettv));
|
|
|
22c937 |
static void f_argv __ARGS((typval_T *argvars, typval_T *rettv));
|
|
|
22c937 |
#ifdef FEAT_FLOAT
|
|
|
22c937 |
static void f_asin __ARGS((typval_T *argvars, typval_T *rettv));
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 7875,7880 ****
|
|
|
22c937 |
--- 7876,7882 ----
|
|
|
22c937 |
{"append", 2, 2, f_append},
|
|
|
22c937 |
{"argc", 0, 0, f_argc},
|
|
|
22c937 |
{"argidx", 0, 0, f_argidx},
|
|
|
22c937 |
+ {"arglistid", 0, 2, f_arglistid},
|
|
|
22c937 |
{"argv", 0, 1, f_argv},
|
|
|
22c937 |
#ifdef FEAT_FLOAT
|
|
|
22c937 |
{"asin", 1, 1, f_asin}, /* WJMc */
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 8859,8864 ****
|
|
|
22c937 |
--- 8861,8901 ----
|
|
|
22c937 |
}
|
|
|
22c937 |
|
|
|
22c937 |
/*
|
|
|
22c937 |
+ * "arglistid()" function
|
|
|
22c937 |
+ */
|
|
|
22c937 |
+ static void
|
|
|
22c937 |
+ f_arglistid(argvars, rettv)
|
|
|
22c937 |
+ typval_T *argvars UNUSED;
|
|
|
22c937 |
+ typval_T *rettv;
|
|
|
22c937 |
+ {
|
|
|
22c937 |
+ win_T *wp;
|
|
|
22c937 |
+ tabpage_T *tp = NULL;
|
|
|
22c937 |
+ long n;
|
|
|
22c937 |
+
|
|
|
22c937 |
+ rettv->vval.v_number = -1;
|
|
|
22c937 |
+ if (argvars[0].v_type != VAR_UNKNOWN)
|
|
|
22c937 |
+ {
|
|
|
22c937 |
+ if (argvars[1].v_type != VAR_UNKNOWN)
|
|
|
22c937 |
+ {
|
|
|
22c937 |
+ n = get_tv_number(&argvars[1]);
|
|
|
22c937 |
+ if (n >= 0)
|
|
|
22c937 |
+ tp = find_tabpage(n);
|
|
|
22c937 |
+ }
|
|
|
22c937 |
+ else
|
|
|
22c937 |
+ tp = curtab;
|
|
|
22c937 |
+
|
|
|
22c937 |
+ if (tp != NULL)
|
|
|
22c937 |
+ {
|
|
|
22c937 |
+ wp = find_win_by_nr(&argvars[0], tp);
|
|
|
22c937 |
+ if (wp != NULL)
|
|
|
22c937 |
+ rettv->vval.v_number = wp->w_alist->id;
|
|
|
22c937 |
+ }
|
|
|
22c937 |
+ }
|
|
|
22c937 |
+ else
|
|
|
22c937 |
+ rettv->vval.v_number = curwin->w_alist->id;
|
|
|
22c937 |
+ }
|
|
|
22c937 |
+
|
|
|
22c937 |
+ /*
|
|
|
22c937 |
* "argv(nr)" function
|
|
|
22c937 |
*/
|
|
|
22c937 |
static void
|
|
|
22c937 |
*** ../vim-7.4.311/src/ex_docmd.c 2014-05-07 21:14:42.913299714 +0200
|
|
|
22c937 |
--- src/ex_docmd.c 2014-05-28 18:10:01.696218435 +0200
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 7211,7216 ****
|
|
|
22c937 |
--- 7211,7217 ----
|
|
|
22c937 |
else
|
|
|
22c937 |
{
|
|
|
22c937 |
curwin->w_alist->al_refcount = 1;
|
|
|
22c937 |
+ curwin->w_alist->id = ++max_alist_id;
|
|
|
22c937 |
alist_init(curwin->w_alist);
|
|
|
22c937 |
}
|
|
|
22c937 |
}
|
|
|
22c937 |
*** ../vim-7.4.311/src/globals.h 2014-05-22 18:14:27.570224664 +0200
|
|
|
22c937 |
--- src/globals.h 2014-05-28 17:56:53.392211534 +0200
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 601,606 ****
|
|
|
22c937 |
--- 601,607 ----
|
|
|
22c937 |
* to this when the window is using the global argument list.
|
|
|
22c937 |
*/
|
|
|
22c937 |
EXTERN alist_T global_alist; /* global argument list */
|
|
|
22c937 |
+ EXTERN int max_alist_id INIT(= 0); /* the previous argument list id */
|
|
|
22c937 |
EXTERN int arg_had_last INIT(= FALSE); /* accessed last file in
|
|
|
22c937 |
global_alist */
|
|
|
22c937 |
|
|
|
22c937 |
*** ../vim-7.4.311/src/structs.h 2014-05-13 20:19:53.573808877 +0200
|
|
|
22c937 |
--- src/structs.h 2014-05-28 17:54:18.312210177 +0200
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 675,680 ****
|
|
|
22c937 |
--- 675,681 ----
|
|
|
22c937 |
{
|
|
|
22c937 |
garray_T al_ga; /* growarray with the array of file names */
|
|
|
22c937 |
int al_refcount; /* number of windows using this arglist */
|
|
|
22c937 |
+ int id; /* id of this arglist */
|
|
|
22c937 |
} alist_T;
|
|
|
22c937 |
|
|
|
22c937 |
/*
|
|
|
22c937 |
*** ../vim-7.4.311/src/main.c 2014-04-01 19:55:46.252787300 +0200
|
|
|
22c937 |
--- src/main.c 2014-05-28 18:09:32.040218175 +0200
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 322,327 ****
|
|
|
22c937 |
--- 322,328 ----
|
|
|
22c937 |
init_yank(); /* init yank buffers */
|
|
|
22c937 |
|
|
|
22c937 |
alist_init(&global_alist); /* Init the argument list to empty. */
|
|
|
22c937 |
+ global_alist.id = 0;
|
|
|
22c937 |
|
|
|
22c937 |
/*
|
|
|
22c937 |
* Set the default values for the options.
|
|
|
22c937 |
*** ../vim-7.4.311/src/version.c 2014-05-28 16:47:11.396174926 +0200
|
|
|
22c937 |
--- src/version.c 2014-05-28 17:25:32.644195071 +0200
|
|
|
22c937 |
***************
|
|
|
22c937 |
*** 736,737 ****
|
|
|
22c937 |
--- 736,739 ----
|
|
|
22c937 |
{ /* Add new patch number below this line */
|
|
|
22c937 |
+ /**/
|
|
|
22c937 |
+ 312,
|
|
|
22c937 |
/**/
|
|
|
22c937 |
|
|
|
22c937 |
--
|
|
|
22c937 |
hundred-and-one symptoms of being an internet addict:
|
|
|
22c937 |
222. You send more than 20 personal e-mails a day.
|
|
|
22c937 |
|
|
|
22c937 |
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
|
|
22c937 |
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
|
|
22c937 |
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
|
|
22c937 |
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|