diff options
author | Sam Bingner <sam@bingner.com> | 2018-08-03 15:06:38 -1000 |
---|---|---|
committer | Sam Bingner <sam@bingner.com> | 2018-08-03 15:06:38 -1000 |
commit | 135b410607f008d3709a7b1374f3f37924eb9fe4 (patch) | |
tree | f4756ef3a354f6001360db894db010df85177f76 /data/vim/patches/8.1.0046 | |
parent | bd1eb51da0d3f250793e1868d73babdf495c921f (diff) |
Update vim
Diffstat (limited to 'data/vim/patches/8.1.0046')
-rw-r--r-- | data/vim/patches/8.1.0046 | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0046 b/data/vim/patches/8.1.0046 new file mode 100644 index 000000000..2b9682b93 --- /dev/null +++ b/data/vim/patches/8.1.0046 @@ -0,0 +1,256 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0046 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0046 +Problem: Loading a session file fails if 'winheight' is a big number. +Solution: Set 'minwinheight' to zero at first. Don't give an error when + setting 'minwinheight' while 'winheight' is a big number. + Fix using vertical splits. Fix setting 'minwinwidth'. + (closes #2970) +Files: src/testdir/test_mksession.vim, src/option.c, src/window.c, + src/proto/window.pro + + +*** ../vim-8.1.0045/src/testdir/test_mksession.vim 2018-03-09 21:25:55.000000000 +0100 +--- src/testdir/test_mksession.vim 2018-06-12 16:38:40.344105918 +0200 +*************** +*** 106,118 **** + + func Test_mksession_winheight() + new +! set winheight=10 winminheight=2 + mksession! Xtest_mks.out + source Xtest_mks.out + + call delete('Xtest_mks.out') + endfunc + + func Test_mksession_arglist() + argdel * + next file1 file2 file3 file4 +--- 106,127 ---- + + func Test_mksession_winheight() + new +! set winheight=10 +! set winminheight=2 + mksession! Xtest_mks.out + source Xtest_mks.out + + call delete('Xtest_mks.out') + endfunc + ++ func Test_mksession_large_winheight() ++ set winheight=999 ++ mksession! Xtest_mks_winheight.out ++ set winheight& ++ source Xtest_mks_winheight.out ++ call delete('Xtest_mks_winheight.out') ++ endfunc ++ + func Test_mksession_arglist() + argdel * + next file1 file2 file3 file4 +*** ../vim-8.1.0045/src/option.c 2018-06-04 17:28:04.729961269 +0200 +--- src/option.c 2018-06-12 16:34:27.832376913 +0200 +*************** +*** 8796,8801 **** +--- 8796,8802 ---- + */ + if (pp == &p_wh || pp == &p_hh) + { ++ // 'winheight' and 'helpheight' + if (p_wh < 1) + { + errmsg = e_positive; +*************** +*** 8821,8830 **** + win_setheight((int)p_hh); + } + } +- +- /* 'winminheight' */ + else if (pp == &p_wmh) + { + if (p_wmh < 0) + { + errmsg = e_positive; +--- 8822,8830 ---- + win_setheight((int)p_hh); + } + } + else if (pp == &p_wmh) + { ++ // 'winminheight' + if (p_wmh < 0) + { + errmsg = e_positive; +*************** +*** 8839,8844 **** +--- 8839,8845 ---- + } + else if (pp == &p_wiw) + { ++ // 'winwidth' + if (p_wiw < 1) + { + errmsg = e_positive; +*************** +*** 8854,8863 **** + if (!ONE_WINDOW && curwin->w_width < p_wiw) + win_setwidth((int)p_wiw); + } +- +- /* 'winminwidth' */ + else if (pp == &p_wmw) + { + if (p_wmw < 0) + { + errmsg = e_positive; +--- 8855,8863 ---- + if (!ONE_WINDOW && curwin->w_width < p_wiw) + win_setwidth((int)p_wiw); + } + else if (pp == &p_wmw) + { ++ // 'winminwidth' + if (p_wmw < 0) + { + errmsg = e_positive; +*************** +*** 8868,8874 **** + errmsg = e_winwidth; + p_wmw = p_wiw; + } +! win_setminheight(); + } + + /* (re)set last window status line */ +--- 8868,8874 ---- + errmsg = e_winwidth; + p_wmw = p_wiw; + } +! win_setminwidth(); + } + + /* (re)set last window status line */ +*** ../vim-8.1.0045/src/window.c 2018-06-10 14:39:47.022412206 +0200 +--- src/window.c 2018-06-12 16:41:04.447771813 +0200 +*************** +*** 5430,5457 **** + } + + /* +! * Check 'winminheight' for a valid value. + */ + void + win_setminheight(void) + { + int room; + int first = TRUE; +- win_T *wp; + +! /* loop until there is a 'winminheight' that is possible */ + while (p_wmh > 0) + { +! /* TODO: handle vertical splits */ +! room = -p_wh; +! FOR_ALL_WINDOWS(wp) +! room += VISIBLE_HEIGHT(wp) - p_wmh; +! if (room >= 0) + break; + --p_wmh; + if (first) + { + EMSG(_(e_noroom)); + first = FALSE; + } + } +--- 5430,5481 ---- + } + + /* +! * Check 'winminheight' for a valid value and reduce it if needed. + */ + void + win_setminheight(void) + { + int room; ++ int needed; + int first = TRUE; + +! // loop until there is a 'winminheight' that is possible + while (p_wmh > 0) + { +! room = Rows - p_ch; +! needed = frame_minheight(topframe, NULL); +! if (room >= needed) + break; + --p_wmh; + if (first) + { + EMSG(_(e_noroom)); ++ first = FALSE; ++ } ++ } ++ } ++ ++ /* ++ * Check 'winminwidth' for a valid value and reduce it if needed. ++ */ ++ void ++ win_setminwidth(void) ++ { ++ int room; ++ int needed; ++ int first = TRUE; ++ ++ // loop until there is a 'winminheight' that is possible ++ while (p_wmw > 0) ++ { ++ room = Columns; ++ needed = frame_minwidth(topframe, NULL); ++ if (room >= needed) ++ break; ++ --p_wmw; ++ if (first) ++ { ++ EMSG(_(e_noroom)); + first = FALSE; + } + } +*** ../vim-8.1.0045/src/proto/window.pro 2018-05-17 13:52:56.000000000 +0200 +--- src/proto/window.pro 2018-06-12 16:34:10.876376437 +0200 +*************** +*** 54,59 **** +--- 54,60 ---- + void win_setwidth(int width); + void win_setwidth_win(int width, win_T *wp); + void win_setminheight(void); ++ void win_setminwidth(void); + void win_drag_status_line(win_T *dragwin, int offset); + void win_drag_vsep_line(win_T *dragwin, int offset); + void set_fraction(win_T *wp); +*** ../vim-8.1.0045/src/version.c 2018-06-12 15:22:39.640579965 +0200 +--- src/version.c 2018-06-12 16:01:12.917283351 +0200 +*************** +*** 763,764 **** +--- 763,766 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 46, + /**/ + +-- +He who laughs last, thinks slowest. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |