diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-10-22 20:27:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-22 20:27:35 -0700 |
commit | 9e4db2ef508b02583c7f30d12c045ccc07328f16 (patch) | |
tree | 1f239179a6cf53520290949ae9ac30be537b133c /src/nvim/window.c | |
parent | 02393a0c74d3aaeece939bafa4f658763acca965 (diff) | |
parent | 3b6b528ea98ca7bf8cd5ae1cf103203e3ca67814 (diff) | |
download | rneovim-9e4db2ef508b02583c7f30d12c045ccc07328f16.tar.gz rneovim-9e4db2ef508b02583c7f30d12c045ccc07328f16.tar.bz2 rneovim-9e4db2ef508b02583c7f30d12c045ccc07328f16.zip |
Merge #11199 from bobrippling/vim-8.1.1228
vim-patch:8.1.{1099,1228,1962} add 'tagfunc'
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r-- | src/nvim/window.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c index 4d8eaa9dcc..ce5be8e904 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -70,8 +70,8 @@ static char *m_onlyone = N_("Already only one window"); /* * all CTRL-W window commands are handled here, called from normal_cmd(). */ -void -do_window ( +void +do_window( int nchar, long Prenum, int xchar /* extra char from ":wincmd gx" or NUL */ @@ -1537,10 +1537,14 @@ static void win_init(win_T *newp, win_T *oldp, int flags) /* copy tagstack and folds */ for (i = 0; i < oldp->w_tagstacklen; i++) { - newp->w_tagstack[i] = oldp->w_tagstack[i]; - if (newp->w_tagstack[i].tagname != NULL) - newp->w_tagstack[i].tagname = - vim_strsave(newp->w_tagstack[i].tagname); + taggy_T *tag = &newp->w_tagstack[i]; + *tag = oldp->w_tagstack[i]; + if (tag->tagname != NULL) { + tag->tagname = vim_strsave(tag->tagname); + } + if (tag->user_data != NULL) { + tag->user_data = vim_strsave(tag->user_data); + } } newp->w_tagstackidx = oldp->w_tagstackidx; newp->w_tagstacklen = oldp->w_tagstacklen; @@ -4638,8 +4642,10 @@ win_free ( xfree(wp->w_lines); - for (i = 0; i < wp->w_tagstacklen; ++i) + for (i = 0; i < wp->w_tagstacklen; i++) { xfree(wp->w_tagstack[i].tagname); + xfree(wp->w_tagstack[i].user_data); + } xfree(wp->w_localdir); |