Fixed: after ":ownsyntax perl" and ":e" syntax was cleared in other window.
diff --git a/src/window.c b/src/window.c
index e878d9f..239a809 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1176,7 +1176,8 @@
newp->w_buffer = oldp->w_buffer;
#ifdef FEAT_SYN_HL
- newp->w_s = oldp->w_s;
+ /* TODO: use reference count? */
+ newp->w_s = &(oldp->w_buffer->b_s);
#endif
oldp->w_buffer->b_nwindows++;
newp->w_cursor = oldp->w_cursor;
@@ -4408,18 +4409,13 @@
#endif /* FEAT_GUI */
#ifdef FEAT_SYN_HL
- /* free independent synblock */
- if (wp->w_s != &wp->w_buffer->b_s)
- {
- syntax_clear(wp->w_s);
- vim_free(wp->w_s);
- }
+ reset_synblock(wp); /* free independent synblock */
#endif
#ifdef FEAT_AUTOCMD
if (wp != aucmd_win)
#endif
- win_remove(wp, tp);
+ win_remove(wp, tp);
vim_free(wp);
#ifdef FEAT_AUTOCMD