summaryrefslogtreecommitdiffstats
path: root/src/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/window.c b/src/window.c
index 4a92d6cb50..1914a3d875 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1326,10 +1326,12 @@ win_init(win_T *newp, win_T *oldp, int flags UNUSED)
/* 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;