To: vim-dev@vim.org Subject: Patch 7.2.161 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 7.2.161 Problem: Folds messed up in other tab page. (Vlad Irnov) Solution: Instead of going over all windows in current tab page go over all windows in all tab pages. Also free memory for location lists in other tab pages when exiting. (Lech Lorens) Files: src/fileio.c, src/mark.c, src/misc1.c, src/misc2.c *** ../vim-7.2.160/src/fileio.c Wed Mar 18 15:40:03 2009 --- src/fileio.c Wed Apr 22 15:46:35 2009 *************** *** 6846,6855 **** #endif #ifdef FEAT_FOLDING { ! win_T *wp; /* Update folds unless they are defined manually. */ ! FOR_ALL_WINDOWS(wp) if (wp->w_buffer == curwin->w_buffer && !foldmethodIsManual(wp)) foldUpdateAll(wp); --- 6846,6856 ---- #endif #ifdef FEAT_FOLDING { ! win_T *wp; ! tabpage_T *tp; /* Update folds unless they are defined manually. */ ! FOR_ALL_TAB_WINDOWS(tp, wp) if (wp->w_buffer == curwin->w_buffer && !foldmethodIsManual(wp)) foldUpdateAll(wp); *** ../vim-7.2.160/src/mark.c Sun Nov 9 13:43:25 2008 --- src/mark.c Wed Apr 22 17:32:29 2009 *************** *** 1023,1028 **** --- 1023,1031 ---- int fnum = curbuf->b_fnum; linenr_T *lp; win_T *win; + #ifdef FEAT_WINDOWS + tabpage_T *tab; + #endif if (line2 < line1 && amount_after == 0L) /* nothing to do */ return; *************** *** 1064,1070 **** /* quickfix marks */ qf_mark_adjust(NULL, line1, line2, amount, amount_after); /* location lists */ ! FOR_ALL_WINDOWS(win) qf_mark_adjust(win, line1, line2, amount, amount_after); #endif --- 1067,1073 ---- /* quickfix marks */ qf_mark_adjust(NULL, line1, line2, amount, amount_after); /* location lists */ ! FOR_ALL_TAB_WINDOWS(tab, win) qf_mark_adjust(win, line1, line2, amount, amount_after); #endif *************** *** 1086,1092 **** /* * Adjust items in all windows related to the current buffer. */ ! FOR_ALL_WINDOWS(win) { #ifdef FEAT_JUMPLIST if (!cmdmod.lockmarks) --- 1089,1095 ---- /* * Adjust items in all windows related to the current buffer. */ ! FOR_ALL_TAB_WINDOWS(tab, win) { #ifdef FEAT_JUMPLIST if (!cmdmod.lockmarks) *** ../vim-7.2.160/src/misc1.c Wed Mar 18 15:40:03 2009 --- src/misc1.c Wed Apr 22 17:32:46 2009 *************** *** 2717,2722 **** --- 2717,2725 ---- long xtra; { win_T *wp; + #ifdef FEAT_WINDOWS + tabpage_T *tp; + #endif int i; #ifdef FEAT_JUMPLIST int cols; *************** *** 2769,2775 **** curbuf->b_changelistlen = JUMPLISTSIZE - 1; mch_memmove(curbuf->b_changelist, curbuf->b_changelist + 1, sizeof(pos_T) * (JUMPLISTSIZE - 1)); ! FOR_ALL_WINDOWS(wp) { /* Correct position in changelist for other windows on * this buffer. */ --- 2772,2778 ---- curbuf->b_changelistlen = JUMPLISTSIZE - 1; mch_memmove(curbuf->b_changelist, curbuf->b_changelist + 1, sizeof(pos_T) * (JUMPLISTSIZE - 1)); ! FOR_ALL_TAB_WINDOWS(tp, wp) { /* Correct position in changelist for other windows on * this buffer. */ *************** *** 2777,2783 **** --wp->w_changelistidx; } } ! FOR_ALL_WINDOWS(wp) { /* For other windows, if the position in the changelist is * at the end it stays at the end. */ --- 2780,2786 ---- --wp->w_changelistidx; } } ! FOR_ALL_TAB_WINDOWS(tp, wp) { /* For other windows, if the position in the changelist is * at the end it stays at the end. */ *************** *** 2796,2802 **** #endif } ! FOR_ALL_WINDOWS(wp) { if (wp->w_buffer == curbuf) { --- 2799,2805 ---- #endif } ! FOR_ALL_TAB_WINDOWS(tp, wp) { if (wp->w_buffer == curbuf) { *** ../vim-7.2.160/src/misc2.c Wed Mar 11 17:27:46 2009 --- src/misc2.c Wed Apr 22 15:46:35 2009 *************** *** 1075,1085 **** #ifdef FEAT_QUICKFIX { ! win_T *win; qf_free_all(NULL); /* Free all location lists */ ! FOR_ALL_WINDOWS(win) qf_free_all(win); } #endif --- 1075,1086 ---- #ifdef FEAT_QUICKFIX { ! win_T *win; ! tabpage_T *tab; qf_free_all(NULL); /* Free all location lists */ ! FOR_ALL_TAB_WINDOWS(tab, win) qf_free_all(win); } #endif *** ../vim-7.2.160/src/version.c Wed Apr 22 18:43:06 2009 --- src/version.c Wed Apr 29 10:59:01 2009 *************** *** 678,679 **** --- 678,681 ---- { /* Add new patch number below this line */ + /**/ + 161, /**/ -- CONCORDE: Quickly, sir, come this way! LAUNCELOT: No! It's not right for my idiom. I must escape more ... more ... CONCORDE: Dramatically, sir? LAUNCELOT: Dramatically. "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///