forked from aniani/vim
updated for version 7.3.924
Problem: Python interface can't easily access options. Solution: Add vim.options, vim.window.options and vim.buffer.options. (ZyX)
This commit is contained in:
57
src/eval.c
57
src/eval.c
@@ -16643,9 +16643,48 @@ f_setwinvar(argvars, rettv)
|
||||
setwinvar(argvars, rettv, 0);
|
||||
}
|
||||
|
||||
int
|
||||
switch_win(save_curwin, save_curtab, win, tp)
|
||||
win_T **save_curwin;
|
||||
tabpage_T **save_curtab;
|
||||
win_T *win;
|
||||
tabpage_T *tp;
|
||||
{
|
||||
#ifdef FEAT_WINDOWS
|
||||
/* set curwin to be our win, temporarily */
|
||||
*save_curwin = curwin;
|
||||
*save_curtab = curtab;
|
||||
goto_tabpage_tp(tp, TRUE);
|
||||
if (!win_valid(win))
|
||||
return FAIL;
|
||||
curwin = win;
|
||||
curbuf = curwin->w_buffer;
|
||||
#endif
|
||||
return OK;
|
||||
}
|
||||
|
||||
void
|
||||
restore_win(save_curwin, save_curtab)
|
||||
win_T *save_curwin;
|
||||
tabpage_T *save_curtab;
|
||||
{
|
||||
#ifdef FEAT_WINDOWS
|
||||
/* Restore current tabpage and window, if still valid (autocomands can
|
||||
* make them invalid). */
|
||||
if (valid_tabpage(save_curtab))
|
||||
goto_tabpage_tp(save_curtab, TRUE);
|
||||
if (win_valid(save_curwin))
|
||||
{
|
||||
curwin = save_curwin;
|
||||
curbuf = curwin->w_buffer;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* "setwinvar()" and "settabwinvar()" functions
|
||||
*/
|
||||
|
||||
static void
|
||||
setwinvar(argvars, rettv, off)
|
||||
typval_T *argvars;
|
||||
@@ -16678,14 +16717,8 @@ setwinvar(argvars, rettv, off)
|
||||
if (win != NULL && varname != NULL && varp != NULL)
|
||||
{
|
||||
#ifdef FEAT_WINDOWS
|
||||
/* set curwin to be our win, temporarily */
|
||||
save_curwin = curwin;
|
||||
save_curtab = curtab;
|
||||
goto_tabpage_tp(tp, TRUE);
|
||||
if (!win_valid(win))
|
||||
if (switch_win(&save_curwin, &save_curtab, win, tp) == FAIL)
|
||||
return;
|
||||
curwin = win;
|
||||
curbuf = curwin->w_buffer;
|
||||
#endif
|
||||
|
||||
if (*varname == '&')
|
||||
@@ -16713,15 +16746,7 @@ setwinvar(argvars, rettv, off)
|
||||
}
|
||||
|
||||
#ifdef FEAT_WINDOWS
|
||||
/* Restore current tabpage and window, if still valid (autocomands can
|
||||
* make them invalid). */
|
||||
if (valid_tabpage(save_curtab))
|
||||
goto_tabpage_tp(save_curtab, TRUE);
|
||||
if (win_valid(save_curwin))
|
||||
{
|
||||
curwin = save_curwin;
|
||||
curbuf = curwin->w_buffer;
|
||||
}
|
||||
restore_win(save_curwin, save_curtab);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user