forked from aniani/vim
patch 7.4.2204
Problem: It is not easy to get information about buffers, windows and tabpages. Solution: Add getbufinfo(), getwininfo() and gettabinfo(). (Yegappan Lakshmanan)
This commit is contained in:
37
src/option.c
37
src/option.c
@@ -12329,3 +12329,40 @@ signcolumn_on(win_T *wp)
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
/*
|
||||
* Get window or buffer local options.
|
||||
*/
|
||||
dict_T *
|
||||
get_winbuf_options(int bufopt)
|
||||
{
|
||||
dict_T *d;
|
||||
int opt_idx;
|
||||
|
||||
d = dict_alloc();
|
||||
if (d == NULL)
|
||||
return NULL;
|
||||
|
||||
for (opt_idx = 0; !istermoption(&options[opt_idx]); opt_idx++)
|
||||
{
|
||||
struct vimoption *opt = &options[opt_idx];
|
||||
|
||||
if ((bufopt && (opt->indir & PV_BUF))
|
||||
|| (!bufopt && (opt->indir & PV_WIN)))
|
||||
{
|
||||
char_u *varp = get_varp(opt);
|
||||
|
||||
if (varp != NULL)
|
||||
{
|
||||
if (opt->flags & P_STRING)
|
||||
dict_add_nr_str(d, opt->fullname, 0L, *(char_u **)varp);
|
||||
else
|
||||
dict_add_nr_str(d, opt->fullname, *varp, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return d;
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user