|
Karsten Hopp |
520a3c |
To: vim_dev@googlegroups.com
|
|
Karsten Hopp |
520a3c |
Subject: Patch 7.3.893
|
|
Karsten Hopp |
520a3c |
Fcc: outbox
|
|
Karsten Hopp |
520a3c |
From: Bram Moolenaar <Bram@moolenaar.net>
|
|
Karsten Hopp |
520a3c |
Mime-Version: 1.0
|
|
Karsten Hopp |
520a3c |
Content-Type: text/plain; charset=UTF-8
|
|
Karsten Hopp |
520a3c |
Content-Transfer-Encoding: 8bit
|
|
Karsten Hopp |
520a3c |
------------
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
Patch 7.3.893
|
|
Karsten Hopp |
520a3c |
Problem: Crash when using b:, w: or t: after closing the buffer, window or
|
|
Karsten Hopp |
520a3c |
tabpage.
|
|
Karsten Hopp |
520a3c |
Solution: Allocate the dictionary instead of having it part of the
|
|
Karsten Hopp |
520a3c |
buffer/window/tabpage struct. (Yukihiro Nakadaira)
|
|
Karsten Hopp |
520a3c |
Files: src/buffer.c, src/eval.c, src/fileio.c, src/structs.h,
|
|
Karsten Hopp |
520a3c |
src/window.c, src/proto/eval.pro
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
*** ../vim-7.3.892/src/buffer.c 2013-03-19 16:46:59.000000000 +0100
|
|
Karsten Hopp |
520a3c |
--- src/buffer.c 2013-04-15 12:07:07.000000000 +0200
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 648,653 ****
|
|
Karsten Hopp |
520a3c |
--- 648,656 ----
|
|
Karsten Hopp |
520a3c |
buf_T *buf;
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
free_buffer_stuff(buf, TRUE);
|
|
Karsten Hopp |
520a3c |
+ #ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
+ unref_var_dict(buf->b_vars);
|
|
Karsten Hopp |
520a3c |
+ #endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_LUA
|
|
Karsten Hopp |
520a3c |
lua_buffer_free(buf);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 689,696 ****
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
|
|
Karsten Hopp |
520a3c |
! hash_init(&buf->b_vars.dv_hashtab);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_USR_CMDS
|
|
Karsten Hopp |
520a3c |
uc_clear(&buf->b_ucmds); /* clear local user commands */
|
|
Karsten Hopp |
520a3c |
--- 692,699 ----
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! vars_clear(&buf->b_vars->dv_hashtab); /* free all internal variables */
|
|
Karsten Hopp |
520a3c |
! hash_init(&buf->b_vars->dv_hashtab);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_USR_CMDS
|
|
Karsten Hopp |
520a3c |
uc_clear(&buf->b_ucmds); /* clear local user commands */
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 1694,1699 ****
|
|
Karsten Hopp |
520a3c |
--- 1697,1713 ----
|
|
Karsten Hopp |
520a3c |
vim_free(ffname);
|
|
Karsten Hopp |
520a3c |
return NULL;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
+ #ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
+ /* init b: variables */
|
|
Karsten Hopp |
520a3c |
+ buf->b_vars = dict_alloc();
|
|
Karsten Hopp |
520a3c |
+ if (buf->b_vars == NULL)
|
|
Karsten Hopp |
520a3c |
+ {
|
|
Karsten Hopp |
520a3c |
+ vim_free(ffname);
|
|
Karsten Hopp |
520a3c |
+ vim_free(buf);
|
|
Karsten Hopp |
520a3c |
+ return NULL;
|
|
Karsten Hopp |
520a3c |
+ }
|
|
Karsten Hopp |
520a3c |
+ init_var_dict(buf->b_vars, &buf->b_bufvar, VAR_SCOPE);
|
|
Karsten Hopp |
520a3c |
+ #endif
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
if (ffname != NULL)
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 1778,1787 ****
|
|
Karsten Hopp |
520a3c |
buf->b_wininfo->wi_fpos.lnum = lnum;
|
|
Karsten Hopp |
520a3c |
buf->b_wininfo->wi_win = curwin;
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
- #ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
- /* init b: variables */
|
|
Karsten Hopp |
520a3c |
- init_var_dict(&buf->b_vars, &buf->b_bufvar, VAR_SCOPE);
|
|
Karsten Hopp |
520a3c |
- #endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_SYN_HL
|
|
Karsten Hopp |
520a3c |
hash_init(&buf->b_s.b_keywtab);
|
|
Karsten Hopp |
520a3c |
hash_init(&buf->b_s.b_keywtab_ic);
|
|
Karsten Hopp |
520a3c |
--- 1792,1797 ----
|
|
Karsten Hopp |
520a3c |
*** ../vim-7.3.892/src/eval.c 2013-03-19 14:25:50.000000000 +0100
|
|
Karsten Hopp |
520a3c |
--- src/eval.c 2013-04-15 12:26:33.000000000 +0200
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 2131,2137 ****
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
char_u numbuf[NUMBUFLEN];
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! list_hashtable_vars(&curbuf->b_vars.dv_hashtab, (char_u *)"b:",
|
|
Karsten Hopp |
520a3c |
TRUE, first);
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick);
|
|
Karsten Hopp |
520a3c |
--- 2131,2137 ----
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
char_u numbuf[NUMBUFLEN];
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! list_hashtable_vars(&curbuf->b_vars->dv_hashtab, (char_u *)"b:",
|
|
Karsten Hopp |
520a3c |
TRUE, first);
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick);
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 2146,2152 ****
|
|
Karsten Hopp |
520a3c |
list_win_vars(first)
|
|
Karsten Hopp |
520a3c |
int *first;
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
! list_hashtable_vars(&curwin->w_vars.dv_hashtab,
|
|
Karsten Hopp |
520a3c |
(char_u *)"w:", TRUE, first);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
--- 2146,2152 ----
|
|
Karsten Hopp |
520a3c |
list_win_vars(first)
|
|
Karsten Hopp |
520a3c |
int *first;
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
! list_hashtable_vars(&curwin->w_vars->dv_hashtab,
|
|
Karsten Hopp |
520a3c |
(char_u *)"w:", TRUE, first);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 2158,2164 ****
|
|
Karsten Hopp |
520a3c |
list_tab_vars(first)
|
|
Karsten Hopp |
520a3c |
int *first;
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
! list_hashtable_vars(&curtab->tp_vars.dv_hashtab,
|
|
Karsten Hopp |
520a3c |
(char_u *)"t:", TRUE, first);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
--- 2158,2164 ----
|
|
Karsten Hopp |
520a3c |
list_tab_vars(first)
|
|
Karsten Hopp |
520a3c |
int *first;
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
! list_hashtable_vars(&curtab->tp_vars->dv_hashtab,
|
|
Karsten Hopp |
520a3c |
(char_u *)"t:", TRUE, first);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 3948,3954 ****
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* b: variables */
|
|
Karsten Hopp |
520a3c |
! ht = &curbuf->b_vars.dv_hashtab;
|
|
Karsten Hopp |
520a3c |
if (bdone < ht->ht_used)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
if (bdone++ == 0)
|
|
Karsten Hopp |
520a3c |
--- 3948,3954 ----
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* b: variables */
|
|
Karsten Hopp |
520a3c |
! ht = &curbuf->b_vars->dv_hashtab;
|
|
Karsten Hopp |
520a3c |
if (bdone < ht->ht_used)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
if (bdone++ == 0)
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 3966,3972 ****
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* w: variables */
|
|
Karsten Hopp |
520a3c |
! ht = &curwin->w_vars.dv_hashtab;
|
|
Karsten Hopp |
520a3c |
if (wdone < ht->ht_used)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
if (wdone++ == 0)
|
|
Karsten Hopp |
520a3c |
--- 3966,3972 ----
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* w: variables */
|
|
Karsten Hopp |
520a3c |
! ht = &curwin->w_vars->dv_hashtab;
|
|
Karsten Hopp |
520a3c |
if (wdone < ht->ht_used)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
if (wdone++ == 0)
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 3980,3986 ****
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
520a3c |
/* t: variables */
|
|
Karsten Hopp |
520a3c |
! ht = &curtab->tp_vars.dv_hashtab;
|
|
Karsten Hopp |
520a3c |
if (tdone < ht->ht_used)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
if (tdone++ == 0)
|
|
Karsten Hopp |
520a3c |
--- 3980,3986 ----
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
520a3c |
/* t: variables */
|
|
Karsten Hopp |
520a3c |
! ht = &curtab->tp_vars->dv_hashtab;
|
|
Karsten Hopp |
520a3c |
if (tdone < ht->ht_used)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
if (tdone++ == 0)
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 6787,6802 ****
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* buffer-local variables */
|
|
Karsten Hopp |
520a3c |
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
|
|
Karsten Hopp |
520a3c |
! set_ref_in_ht(&buf->b_vars.dv_hashtab, copyID);
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* window-local variables */
|
|
Karsten Hopp |
520a3c |
FOR_ALL_TAB_WINDOWS(tp, wp)
|
|
Karsten Hopp |
520a3c |
! set_ref_in_ht(&wp->w_vars.dv_hashtab, copyID);
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
520a3c |
/* tabpage-local variables */
|
|
Karsten Hopp |
520a3c |
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
|
|
Karsten Hopp |
520a3c |
! set_ref_in_ht(&tp->tp_vars.dv_hashtab, copyID);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* global variables */
|
|
Karsten Hopp |
520a3c |
--- 6787,6802 ----
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* buffer-local variables */
|
|
Karsten Hopp |
520a3c |
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
|
|
Karsten Hopp |
520a3c |
! set_ref_in_item(&buf->b_bufvar.di_tv, copyID);
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* window-local variables */
|
|
Karsten Hopp |
520a3c |
FOR_ALL_TAB_WINDOWS(tp, wp)
|
|
Karsten Hopp |
520a3c |
! set_ref_in_item(&wp->w_winvar.di_tv, copyID);
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
520a3c |
/* tabpage-local variables */
|
|
Karsten Hopp |
520a3c |
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
|
|
Karsten Hopp |
520a3c |
! set_ref_in_item(&tp->tp_winvar.di_tv, copyID);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/* global variables */
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 11156,11162 ****
|
|
Karsten Hopp |
520a3c |
* find_var_in_ht(). */
|
|
Karsten Hopp |
520a3c |
varname = (char_u *)"b:" + 2;
|
|
Karsten Hopp |
520a3c |
/* look up the variable */
|
|
Karsten Hopp |
520a3c |
! v = find_var_in_ht(&curbuf->b_vars.dv_hashtab, varname, FALSE);
|
|
Karsten Hopp |
520a3c |
if (v != NULL)
|
|
Karsten Hopp |
520a3c |
copy_tv(&v->di_tv, rettv);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
--- 11156,11162 ----
|
|
Karsten Hopp |
520a3c |
* find_var_in_ht(). */
|
|
Karsten Hopp |
520a3c |
varname = (char_u *)"b:" + 2;
|
|
Karsten Hopp |
520a3c |
/* look up the variable */
|
|
Karsten Hopp |
520a3c |
! v = find_var_in_ht(&curbuf->b_vars->dv_hashtab, varname, FALSE);
|
|
Karsten Hopp |
520a3c |
if (v != NULL)
|
|
Karsten Hopp |
520a3c |
copy_tv(&v->di_tv, rettv);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 11779,11785 ****
|
|
Karsten Hopp |
520a3c |
if (tp != NULL && varname != NULL)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
/* look up the variable */
|
|
Karsten Hopp |
520a3c |
! v = find_var_in_ht(&tp->tp_vars.dv_hashtab, varname, FALSE);
|
|
Karsten Hopp |
520a3c |
if (v != NULL)
|
|
Karsten Hopp |
520a3c |
copy_tv(&v->di_tv, rettv);
|
|
Karsten Hopp |
520a3c |
else if (argvars[2].v_type != VAR_UNKNOWN)
|
|
Karsten Hopp |
520a3c |
--- 11779,11785 ----
|
|
Karsten Hopp |
520a3c |
if (tp != NULL && varname != NULL)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
/* look up the variable */
|
|
Karsten Hopp |
520a3c |
! v = find_var_in_ht(&tp->tp_vars->dv_hashtab, varname, FALSE);
|
|
Karsten Hopp |
520a3c |
if (v != NULL)
|
|
Karsten Hopp |
520a3c |
copy_tv(&v->di_tv, rettv);
|
|
Karsten Hopp |
520a3c |
else if (argvars[2].v_type != VAR_UNKNOWN)
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 11935,11941 ****
|
|
Karsten Hopp |
520a3c |
* find_var_in_ht(). */
|
|
Karsten Hopp |
520a3c |
varname = (char_u *)"w:" + 2;
|
|
Karsten Hopp |
520a3c |
/* look up the variable */
|
|
Karsten Hopp |
520a3c |
! v = find_var_in_ht(&win->w_vars.dv_hashtab, varname, FALSE);
|
|
Karsten Hopp |
520a3c |
if (v != NULL)
|
|
Karsten Hopp |
520a3c |
copy_tv(&v->di_tv, rettv);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
--- 11935,11941 ----
|
|
Karsten Hopp |
520a3c |
* find_var_in_ht(). */
|
|
Karsten Hopp |
520a3c |
varname = (char_u *)"w:" + 2;
|
|
Karsten Hopp |
520a3c |
/* look up the variable */
|
|
Karsten Hopp |
520a3c |
! v = find_var_in_ht(&win->w_vars->dv_hashtab, varname, FALSE);
|
|
Karsten Hopp |
520a3c |
if (v != NULL)
|
|
Karsten Hopp |
520a3c |
copy_tv(&v->di_tv, rettv);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 14333,14339 ****
|
|
Karsten Hopp |
520a3c |
rettv->v_type = VAR_STRING;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! #ifdef FEAT_MZSCHEME
|
|
Karsten Hopp |
520a3c |
/*
|
|
Karsten Hopp |
520a3c |
* "mzeval()" function
|
|
Karsten Hopp |
520a3c |
*/
|
|
Karsten Hopp |
520a3c |
--- 14333,14339 ----
|
|
Karsten Hopp |
520a3c |
rettv->v_type = VAR_STRING;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! #if defined(FEAT_MZSCHEME) || defined(PROTO)
|
|
Karsten Hopp |
520a3c |
/*
|
|
Karsten Hopp |
520a3c |
* "mzeval()" function
|
|
Karsten Hopp |
520a3c |
*/
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 20134,20145 ****
|
|
Karsten Hopp |
520a3c |
|| vim_strchr(name + 2, AUTOLOAD_CHAR) != NULL)
|
|
Karsten Hopp |
520a3c |
return NULL;
|
|
Karsten Hopp |
520a3c |
if (*name == 'b') /* buffer variable */
|
|
Karsten Hopp |
520a3c |
! return &curbuf->b_vars.dv_hashtab;
|
|
Karsten Hopp |
520a3c |
if (*name == 'w') /* window variable */
|
|
Karsten Hopp |
520a3c |
! return &curwin->w_vars.dv_hashtab;
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
520a3c |
if (*name == 't') /* tab page variable */
|
|
Karsten Hopp |
520a3c |
! return &curtab->tp_vars.dv_hashtab;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
if (*name == 'v') /* v: variable */
|
|
Karsten Hopp |
520a3c |
return &vimvarht;
|
|
Karsten Hopp |
520a3c |
--- 20134,20145 ----
|
|
Karsten Hopp |
520a3c |
|| vim_strchr(name + 2, AUTOLOAD_CHAR) != NULL)
|
|
Karsten Hopp |
520a3c |
return NULL;
|
|
Karsten Hopp |
520a3c |
if (*name == 'b') /* buffer variable */
|
|
Karsten Hopp |
520a3c |
! return &curbuf->b_vars->dv_hashtab;
|
|
Karsten Hopp |
520a3c |
if (*name == 'w') /* window variable */
|
|
Karsten Hopp |
520a3c |
! return &curwin->w_vars->dv_hashtab;
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
520a3c |
if (*name == 't') /* tab page variable */
|
|
Karsten Hopp |
520a3c |
! return &curtab->tp_vars->dv_hashtab;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
if (*name == 'v') /* v: variable */
|
|
Karsten Hopp |
520a3c |
return &vimvarht;
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 20229,20234 ****
|
|
Karsten Hopp |
520a3c |
--- 20229,20247 ----
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/*
|
|
Karsten Hopp |
520a3c |
+ * Unreference a dictionary initialized by init_var_dict().
|
|
Karsten Hopp |
520a3c |
+ */
|
|
Karsten Hopp |
520a3c |
+ void
|
|
Karsten Hopp |
520a3c |
+ unref_var_dict(dict)
|
|
Karsten Hopp |
520a3c |
+ dict_T *dict;
|
|
Karsten Hopp |
520a3c |
+ {
|
|
Karsten Hopp |
520a3c |
+ /* Now the dict needs to be freed if no one else is using it, go back to
|
|
Karsten Hopp |
520a3c |
+ * normal reference counting. */
|
|
Karsten Hopp |
520a3c |
+ dict->dv_refcount -= DO_NOT_FREE_CNT - 1;
|
|
Karsten Hopp |
520a3c |
+ dict_unref(dict);
|
|
Karsten Hopp |
520a3c |
+ }
|
|
Karsten Hopp |
520a3c |
+
|
|
Karsten Hopp |
520a3c |
+ /*
|
|
Karsten Hopp |
520a3c |
* Clean up a list of internal variables.
|
|
Karsten Hopp |
520a3c |
* Frees all allocated variables and the value they contain.
|
|
Karsten Hopp |
520a3c |
* Clears hashtab "ht", does not free it.
|
|
Karsten Hopp |
520a3c |
*** ../vim-7.3.892/src/fileio.c 2013-03-19 16:46:59.000000000 +0100
|
|
Karsten Hopp |
520a3c |
--- src/fileio.c 2013-04-15 11:52:34.000000000 +0200
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 8955,8962 ****
|
|
Karsten Hopp |
520a3c |
/* Hmm, original window disappeared. Just use the first one. */
|
|
Karsten Hopp |
520a3c |
curwin = firstwin;
|
|
Karsten Hopp |
520a3c |
# ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! vars_clear(&aucmd_win->w_vars.dv_hashtab); /* free all w: variables */
|
|
Karsten Hopp |
520a3c |
! hash_init(&aucmd_win->w_vars.dv_hashtab); /* re-use the hashtab */
|
|
Karsten Hopp |
520a3c |
# endif
|
|
Karsten Hopp |
520a3c |
#else
|
|
Karsten Hopp |
520a3c |
curwin = aco->save_curwin;
|
|
Karsten Hopp |
520a3c |
--- 8955,8962 ----
|
|
Karsten Hopp |
520a3c |
/* Hmm, original window disappeared. Just use the first one. */
|
|
Karsten Hopp |
520a3c |
curwin = firstwin;
|
|
Karsten Hopp |
520a3c |
# ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! vars_clear(&aucmd_win->w_vars->dv_hashtab); /* free all w: variables */
|
|
Karsten Hopp |
520a3c |
! hash_init(&aucmd_win->w_vars->dv_hashtab); /* re-use the hashtab */
|
|
Karsten Hopp |
520a3c |
# endif
|
|
Karsten Hopp |
520a3c |
#else
|
|
Karsten Hopp |
520a3c |
curwin = aco->save_curwin;
|
|
Karsten Hopp |
520a3c |
*** ../vim-7.3.892/src/structs.h 2012-07-16 17:31:48.000000000 +0200
|
|
Karsten Hopp |
520a3c |
--- src/structs.h 2013-04-15 11:52:34.000000000 +0200
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 1611,1617 ****
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
dictitem_T b_bufvar; /* variable for "b:" Dictionary */
|
|
Karsten Hopp |
520a3c |
! dict_T b_vars; /* internal variables, local to buffer */
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
|
|
Karsten Hopp |
520a3c |
--- 1611,1617 ----
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
dictitem_T b_bufvar; /* variable for "b:" Dictionary */
|
|
Karsten Hopp |
520a3c |
! dict_T *b_vars; /* internal variables, local to buffer */
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 1757,1763 ****
|
|
Karsten Hopp |
520a3c |
frame_T *(tp_snapshot[SNAP_COUNT]); /* window layout snapshots */
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
dictitem_T tp_winvar; /* variable for "t:" Dictionary */
|
|
Karsten Hopp |
520a3c |
! dict_T tp_vars; /* internal variables, local to tab page */
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
};
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
--- 1757,1763 ----
|
|
Karsten Hopp |
520a3c |
frame_T *(tp_snapshot[SNAP_COUNT]); /* window layout snapshots */
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
dictitem_T tp_winvar; /* variable for "t:" Dictionary */
|
|
Karsten Hopp |
520a3c |
! dict_T *tp_vars; /* internal variables, local to tab page */
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
};
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 2080,2086 ****
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
dictitem_T w_winvar; /* variable for "w:" Dictionary */
|
|
Karsten Hopp |
520a3c |
! dict_T w_vars; /* internal variables, local to window */
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#if defined(FEAT_RIGHTLEFT) && defined(FEAT_FKMAP)
|
|
Karsten Hopp |
520a3c |
--- 2080,2086 ----
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
dictitem_T w_winvar; /* variable for "w:" Dictionary */
|
|
Karsten Hopp |
520a3c |
! dict_T *w_vars; /* internal variables, local to window */
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#if defined(FEAT_RIGHTLEFT) && defined(FEAT_FKMAP)
|
|
Karsten Hopp |
520a3c |
*** ../vim-7.3.892/src/window.c 2013-02-06 13:37:58.000000000 +0100
|
|
Karsten Hopp |
520a3c |
--- src/window.c 2013-04-15 12:20:09.000000000 +0200
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 3457,3481 ****
|
|
Karsten Hopp |
520a3c |
alloc_tabpage()
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
tabpage_T *tp;
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
tp = (tabpage_T *)alloc_clear((unsigned)sizeof(tabpage_T));
|
|
Karsten Hopp |
520a3c |
! if (tp != NULL)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
! # ifdef FEAT_GUI
|
|
Karsten Hopp |
520a3c |
! int i;
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! for (i = 0; i < 3; i++)
|
|
Karsten Hopp |
520a3c |
! tp->tp_prev_which_scrollbars[i] = -1;
|
|
Karsten Hopp |
520a3c |
# endif
|
|
Karsten Hopp |
520a3c |
# ifdef FEAT_DIFF
|
|
Karsten Hopp |
520a3c |
! tp->tp_diff_invalid = TRUE;
|
|
Karsten Hopp |
520a3c |
# endif
|
|
Karsten Hopp |
520a3c |
! #ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! /* init t: variables */
|
|
Karsten Hopp |
520a3c |
! init_var_dict(&tp->tp_vars, &tp->tp_winvar, VAR_SCOPE);
|
|
Karsten Hopp |
520a3c |
! #endif
|
|
Karsten Hopp |
520a3c |
! tp->tp_ch_used = p_ch;
|
|
Karsten Hopp |
520a3c |
! }
|
|
Karsten Hopp |
520a3c |
return tp;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
--- 3457,3491 ----
|
|
Karsten Hopp |
520a3c |
alloc_tabpage()
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
tabpage_T *tp;
|
|
Karsten Hopp |
520a3c |
+ # ifdef FEAT_GUI
|
|
Karsten Hopp |
520a3c |
+ int i;
|
|
Karsten Hopp |
520a3c |
+ # endif
|
|
Karsten Hopp |
520a3c |
+
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
tp = (tabpage_T *)alloc_clear((unsigned)sizeof(tabpage_T));
|
|
Karsten Hopp |
520a3c |
! if (tp == NULL)
|
|
Karsten Hopp |
520a3c |
! return NULL;
|
|
Karsten Hopp |
520a3c |
!
|
|
Karsten Hopp |
520a3c |
! # ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! /* init t: variables */
|
|
Karsten Hopp |
520a3c |
! tp->tp_vars = dict_alloc();
|
|
Karsten Hopp |
520a3c |
! if (tp->tp_vars == NULL)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
! vim_free(tp);
|
|
Karsten Hopp |
520a3c |
! return NULL;
|
|
Karsten Hopp |
520a3c |
! }
|
|
Karsten Hopp |
520a3c |
! init_var_dict(tp->tp_vars, &tp->tp_winvar, VAR_SCOPE);
|
|
Karsten Hopp |
520a3c |
! # endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! # ifdef FEAT_GUI
|
|
Karsten Hopp |
520a3c |
! for (i = 0; i < 3; i++)
|
|
Karsten Hopp |
520a3c |
! tp->tp_prev_which_scrollbars[i] = -1;
|
|
Karsten Hopp |
520a3c |
# endif
|
|
Karsten Hopp |
520a3c |
# ifdef FEAT_DIFF
|
|
Karsten Hopp |
520a3c |
! tp->tp_diff_invalid = TRUE;
|
|
Karsten Hopp |
520a3c |
# endif
|
|
Karsten Hopp |
520a3c |
! tp->tp_ch_used = p_ch;
|
|
Karsten Hopp |
520a3c |
!
|
|
Karsten Hopp |
520a3c |
return tp;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 3491,3497 ****
|
|
Karsten Hopp |
520a3c |
for (idx = 0; idx < SNAP_COUNT; ++idx)
|
|
Karsten Hopp |
520a3c |
clear_snapshot(tp, idx);
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! vars_clear(&tp->tp_vars.dv_hashtab); /* free all t: variables */
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
vim_free(tp);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
--- 3501,3509 ----
|
|
Karsten Hopp |
520a3c |
for (idx = 0; idx < SNAP_COUNT; ++idx)
|
|
Karsten Hopp |
520a3c |
clear_snapshot(tp, idx);
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! vars_clear(&tp->tp_vars->dv_hashtab); /* free all t: variables */
|
|
Karsten Hopp |
520a3c |
! hash_init(&tp->tp_vars->dv_hashtab);
|
|
Karsten Hopp |
520a3c |
! unref_var_dict(tp->tp_vars);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
vim_free(tp);
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 4363,4433 ****
|
|
Karsten Hopp |
520a3c |
* allocate window structure and linesizes arrays
|
|
Karsten Hopp |
520a3c |
*/
|
|
Karsten Hopp |
520a3c |
new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T));
|
|
Karsten Hopp |
520a3c |
! if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
vim_free(new_wp);
|
|
Karsten Hopp |
520a3c |
! new_wp = NULL;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! if (new_wp != NULL)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_AUTOCMD
|
|
Karsten Hopp |
520a3c |
! /* Don't execute autocommands while the window is not properly
|
|
Karsten Hopp |
520a3c |
! * initialized yet. gui_create_scrollbar() may trigger a FocusGained
|
|
Karsten Hopp |
520a3c |
! * event. */
|
|
Karsten Hopp |
520a3c |
! block_autocmds();
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
! /*
|
|
Karsten Hopp |
520a3c |
! * link the window in the window list
|
|
Karsten Hopp |
520a3c |
! */
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
520a3c |
! if (!hidden)
|
|
Karsten Hopp |
520a3c |
! win_append(after, new_wp);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_VERTSPLIT
|
|
Karsten Hopp |
520a3c |
! new_wp->w_wincol = 0;
|
|
Karsten Hopp |
520a3c |
! new_wp->w_width = Columns;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! /* position the display and the cursor at the top of the file. */
|
|
Karsten Hopp |
520a3c |
! new_wp->w_topline = 1;
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_DIFF
|
|
Karsten Hopp |
520a3c |
! new_wp->w_topfill = 0;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
! new_wp->w_botline = 2;
|
|
Karsten Hopp |
520a3c |
! new_wp->w_cursor.lnum = 1;
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_SCROLLBIND
|
|
Karsten Hopp |
520a3c |
! new_wp->w_scbind_pos = 1;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! /* We won't calculate w_fraction until resizing the window */
|
|
Karsten Hopp |
520a3c |
! new_wp->w_fraction = 0;
|
|
Karsten Hopp |
520a3c |
! new_wp->w_prev_fraction_row = -1;
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_GUI
|
|
Karsten Hopp |
520a3c |
! if (gui.in_use)
|
|
Karsten Hopp |
520a3c |
! {
|
|
Karsten Hopp |
520a3c |
! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT],
|
|
Karsten Hopp |
520a3c |
! SBAR_LEFT, new_wp);
|
|
Karsten Hopp |
520a3c |
! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT],
|
|
Karsten Hopp |
520a3c |
! SBAR_RIGHT, new_wp);
|
|
Karsten Hopp |
520a3c |
! }
|
|
Karsten Hopp |
520a3c |
! #endif
|
|
Karsten Hopp |
520a3c |
! #ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! /* init w: variables */
|
|
Karsten Hopp |
520a3c |
! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar, VAR_SCOPE);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_FOLDING
|
|
Karsten Hopp |
520a3c |
! foldInitWin(new_wp);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_AUTOCMD
|
|
Karsten Hopp |
520a3c |
! unblock_autocmds();
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_SEARCH_EXTRA
|
|
Karsten Hopp |
520a3c |
! new_wp->w_match_head = NULL;
|
|
Karsten Hopp |
520a3c |
! new_wp->w_next_match_id = 4;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
- }
|
|
Karsten Hopp |
520a3c |
return new_wp;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
--- 4375,4453 ----
|
|
Karsten Hopp |
520a3c |
* allocate window structure and linesizes arrays
|
|
Karsten Hopp |
520a3c |
*/
|
|
Karsten Hopp |
520a3c |
new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T));
|
|
Karsten Hopp |
520a3c |
! if (new_wp == NULL)
|
|
Karsten Hopp |
520a3c |
! return NULL;
|
|
Karsten Hopp |
520a3c |
!
|
|
Karsten Hopp |
520a3c |
! if (win_alloc_lines(new_wp) == FAIL)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
vim_free(new_wp);
|
|
Karsten Hopp |
520a3c |
! return NULL;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! #ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! /* init w: variables */
|
|
Karsten Hopp |
520a3c |
! new_wp->w_vars = dict_alloc();
|
|
Karsten Hopp |
520a3c |
! if (new_wp->w_vars == NULL)
|
|
Karsten Hopp |
520a3c |
{
|
|
Karsten Hopp |
520a3c |
+ win_free_lsize(new_wp);
|
|
Karsten Hopp |
520a3c |
+ vim_free(new_wp);
|
|
Karsten Hopp |
520a3c |
+ return NULL;
|
|
Karsten Hopp |
520a3c |
+ }
|
|
Karsten Hopp |
520a3c |
+ init_var_dict(new_wp->w_vars, &new_wp->w_winvar, VAR_SCOPE);
|
|
Karsten Hopp |
520a3c |
+ #endif
|
|
Karsten Hopp |
520a3c |
+
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_AUTOCMD
|
|
Karsten Hopp |
520a3c |
! /* Don't execute autocommands while the window is not properly
|
|
Karsten Hopp |
520a3c |
! * initialized yet. gui_create_scrollbar() may trigger a FocusGained
|
|
Karsten Hopp |
520a3c |
! * event. */
|
|
Karsten Hopp |
520a3c |
! block_autocmds();
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
! /*
|
|
Karsten Hopp |
520a3c |
! * link the window in the window list
|
|
Karsten Hopp |
520a3c |
! */
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
520a3c |
! if (!hidden)
|
|
Karsten Hopp |
520a3c |
! win_append(after, new_wp);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_VERTSPLIT
|
|
Karsten Hopp |
520a3c |
! new_wp->w_wincol = 0;
|
|
Karsten Hopp |
520a3c |
! new_wp->w_width = Columns;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! /* position the display and the cursor at the top of the file. */
|
|
Karsten Hopp |
520a3c |
! new_wp->w_topline = 1;
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_DIFF
|
|
Karsten Hopp |
520a3c |
! new_wp->w_topfill = 0;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
! new_wp->w_botline = 2;
|
|
Karsten Hopp |
520a3c |
! new_wp->w_cursor.lnum = 1;
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_SCROLLBIND
|
|
Karsten Hopp |
520a3c |
! new_wp->w_scbind_pos = 1;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
! /* We won't calculate w_fraction until resizing the window */
|
|
Karsten Hopp |
520a3c |
! new_wp->w_fraction = 0;
|
|
Karsten Hopp |
520a3c |
! new_wp->w_prev_fraction_row = -1;
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_GUI
|
|
Karsten Hopp |
520a3c |
! if (gui.in_use)
|
|
Karsten Hopp |
520a3c |
! {
|
|
Karsten Hopp |
520a3c |
! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT],
|
|
Karsten Hopp |
520a3c |
! SBAR_LEFT, new_wp);
|
|
Karsten Hopp |
520a3c |
! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT],
|
|
Karsten Hopp |
520a3c |
! SBAR_RIGHT, new_wp);
|
|
Karsten Hopp |
520a3c |
! }
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_FOLDING
|
|
Karsten Hopp |
520a3c |
! foldInitWin(new_wp);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_AUTOCMD
|
|
Karsten Hopp |
520a3c |
! unblock_autocmds();
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_SEARCH_EXTRA
|
|
Karsten Hopp |
520a3c |
! new_wp->w_match_head = NULL;
|
|
Karsten Hopp |
520a3c |
! new_wp->w_next_match_id = 4;
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
return new_wp;
|
|
Karsten Hopp |
520a3c |
}
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 4488,4494 ****
|
|
Karsten Hopp |
520a3c |
clear_winopt(&wp->w_allbuf_opt);
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! vars_clear(&wp->w_vars.dv_hashtab); /* free all w: variables */
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
if (prevwin == wp)
|
|
Karsten Hopp |
520a3c |
--- 4508,4516 ----
|
|
Karsten Hopp |
520a3c |
clear_winopt(&wp->w_allbuf_opt);
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
#ifdef FEAT_EVAL
|
|
Karsten Hopp |
520a3c |
! vars_clear(&wp->w_vars->dv_hashtab); /* free all w: variables */
|
|
Karsten Hopp |
520a3c |
! hash_init(&wp->w_vars->dv_hashtab);
|
|
Karsten Hopp |
520a3c |
! unref_var_dict(wp->w_vars);
|
|
Karsten Hopp |
520a3c |
#endif
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
if (prevwin == wp)
|
|
Karsten Hopp |
520a3c |
*** ../vim-7.3.892/src/proto/eval.pro 2013-01-30 14:55:35.000000000 +0100
|
|
Karsten Hopp |
520a3c |
--- src/proto/eval.pro 2013-04-15 12:26:39.000000000 +0200
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 24,31 ****
|
|
Karsten Hopp |
520a3c |
int get_spellword __ARGS((list_T *list, char_u **pp));
|
|
Karsten Hopp |
520a3c |
typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
|
|
Karsten Hopp |
520a3c |
int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, int str_arg_only, typval_T *rettv));
|
|
Karsten Hopp |
520a3c |
- void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
|
|
Karsten Hopp |
520a3c |
long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
|
|
Karsten Hopp |
520a3c |
void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
|
|
Karsten Hopp |
520a3c |
void *save_funccal __ARGS((void));
|
|
Karsten Hopp |
520a3c |
void restore_funccal __ARGS((void *vfc));
|
|
Karsten Hopp |
520a3c |
--- 24,31 ----
|
|
Karsten Hopp |
520a3c |
int get_spellword __ARGS((list_T *list, char_u **pp));
|
|
Karsten Hopp |
520a3c |
typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
|
|
Karsten Hopp |
520a3c |
int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, int str_arg_only, typval_T *rettv));
|
|
Karsten Hopp |
520a3c |
long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
|
|
Karsten Hopp |
520a3c |
+ void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
|
|
Karsten Hopp |
520a3c |
void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
|
|
Karsten Hopp |
520a3c |
void *save_funccal __ARGS((void));
|
|
Karsten Hopp |
520a3c |
void restore_funccal __ARGS((void *vfc));
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 95,100 ****
|
|
Karsten Hopp |
520a3c |
--- 95,101 ----
|
|
Karsten Hopp |
520a3c |
char_u *get_var_value __ARGS((char_u *name));
|
|
Karsten Hopp |
520a3c |
void new_script_vars __ARGS((scid_T id));
|
|
Karsten Hopp |
520a3c |
void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var, int scope));
|
|
Karsten Hopp |
520a3c |
+ void unref_var_dict __ARGS((dict_T *dict));
|
|
Karsten Hopp |
520a3c |
void vars_clear __ARGS((hashtab_T *ht));
|
|
Karsten Hopp |
520a3c |
void copy_tv __ARGS((typval_T *from, typval_T *to));
|
|
Karsten Hopp |
520a3c |
void ex_echo __ARGS((exarg_T *eap));
|
|
Karsten Hopp |
520a3c |
*** ../vim-7.3.892/src/version.c 2013-04-14 23:19:32.000000000 +0200
|
|
Karsten Hopp |
520a3c |
--- src/version.c 2013-04-15 12:19:17.000000000 +0200
|
|
Karsten Hopp |
520a3c |
***************
|
|
Karsten Hopp |
520a3c |
*** 730,731 ****
|
|
Karsten Hopp |
520a3c |
--- 730,733 ----
|
|
Karsten Hopp |
520a3c |
{ /* Add new patch number below this line */
|
|
Karsten Hopp |
520a3c |
+ /**/
|
|
Karsten Hopp |
520a3c |
+ 893,
|
|
Karsten Hopp |
520a3c |
/**/
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
--
|
|
Karsten Hopp |
520a3c |
Apathy Error: Don't bother striking any key.
|
|
Karsten Hopp |
520a3c |
|
|
Karsten Hopp |
520a3c |
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
|
Karsten Hopp |
520a3c |
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
|
Karsten Hopp |
520a3c |
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
|
Karsten Hopp |
520a3c |
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|