diff options
Diffstat (limited to 'data/vim/patches/8.1.0523')
-rw-r--r-- | data/vim/patches/8.1.0523 | 403 |
1 files changed, 0 insertions, 403 deletions
diff --git a/data/vim/patches/8.1.0523 b/data/vim/patches/8.1.0523 deleted file mode 100644 index 2c5ffa648..000000000 --- a/data/vim/patches/8.1.0523 +++ /dev/null @@ -1,403 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.0523 -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.0523 -Problem: Opening window from quickfix leaves empty buffer behind. -Solution: Add qf_jump_newwin(). (Yegappan Lakshmanan, closes #2574) -Files: src/proto/quickfix.pro, src/quickfix.c, - src/testdir/test_quickfix.vim - - -*** ../vim-8.1.0522/src/proto/quickfix.pro 2018-10-20 20:53:58.143284832 +0200 ---- src/proto/quickfix.pro 2018-11-11 22:45:31.145846186 +0100 -*************** -*** 4,9 **** ---- 4,10 ---- - void check_quickfix_busy(void); - void copy_loclist_stack(win_T *from, win_T *to); - void qf_jump(qf_info_T *qi, int dir, int errornr, int forceit); -+ void qf_jump_newwin(qf_info_T *qi, int dir, int errornr, int forceit, int newwin); - void qf_list(exarg_T *eap); - void qf_age(exarg_T *eap); - void qf_history(exarg_T *eap); -*** ../vim-8.1.0522/src/quickfix.c 2018-10-28 14:36:04.222247691 +0100 ---- src/quickfix.c 2018-11-11 22:46:08.525548009 +0100 -*************** -*** 2699,2713 **** - } - - /* -! * Find a help window or open one. - */ - static int -! jump_to_help_window(qf_info_T *qi, int *opened_window) - { - win_T *wp; - int flags; - -! if (cmdmod.tab != 0) - wp = NULL; - else - wp = qf_find_help_win(); ---- 2699,2714 ---- - } - - /* -! * Find a help window or open one. If 'newwin' is TRUE, then open a new help -! * window. - */ - static int -! jump_to_help_window(qf_info_T *qi, int newwin, int *opened_window) - { - win_T *wp; - int flags; - -! if (cmdmod.tab != 0 || newwin) - wp = NULL; - else - wp = qf_find_help_win(); -*************** -*** 2721,2728 **** - if (cmdmod.split == 0 && curwin->w_width != Columns - && curwin->w_width < 80) - flags |= WSP_TOP; -! if (IS_LL_STACK(qi)) -! flags |= WSP_NEWLOC; // don't copy the location list - - if (win_split(0, flags) == FAIL) - return FAIL; ---- 2722,2731 ---- - if (cmdmod.split == 0 && curwin->w_width != Columns - && curwin->w_width < 80) - flags |= WSP_TOP; -! // If the user asks to open a new window, then copy the location list. -! // Otherwise, don't copy the location list. -! if (IS_LL_STACK(qi) && !newwin) -! flags |= WSP_NEWLOC; - - if (win_split(0, flags) == FAIL) - return FAIL; -*************** -*** 2732,2740 **** - if (curwin->w_height < p_hh) - win_setheight((int)p_hh); - -! if (IS_LL_STACK(qi)) // not a quickfix list - { -- // The new window should use the supplied location list - curwin->w_llist = qi; - qi->qf_refcount++; - } ---- 2735,2745 ---- - if (curwin->w_height < p_hh) - win_setheight((int)p_hh); - -! // When using location list, the new window should use the supplied -! // location list. If the user asks to open a new window, then the new -! // window will get a copy of the location list. -! if (IS_LL_STACK(qi) && !newwin) - { - curwin->w_llist = qi; - qi->qf_refcount++; - } -*************** -*** 2915,2934 **** - /* - * Find a suitable window for opening a file (qf_fnum) from the - * quickfix/location list and jump to it. If the file is already opened in a -! * window, jump to it. Otherwise open a new window to display the file. This is -! * called from either a quickfix or a location list window. - */ - static int -! qf_jump_to_usable_window(int qf_fnum, int *opened_window) - { - win_T *usable_win_ptr = NULL; - int usable_win; -! qf_info_T *ll_ref; - win_T *win; - - usable_win = 0; - -! ll_ref = curwin->w_llist_ref; - if (ll_ref != NULL) - { - // Find a non-quickfix window with this location list ---- 2920,2945 ---- - /* - * Find a suitable window for opening a file (qf_fnum) from the - * quickfix/location list and jump to it. If the file is already opened in a -! * window, jump to it. Otherwise open a new window to display the file. If -! * 'newwin' is TRUE, then always open a new window. This is called from either -! * a quickfix or a location list window. - */ - static int -! qf_jump_to_usable_window(int qf_fnum, int newwin, int *opened_window) - { - win_T *usable_win_ptr = NULL; - int usable_win; -! qf_info_T *ll_ref = NULL; - win_T *win; - - usable_win = 0; - -! // If opening a new window, then don't use the location list referred by -! // the current window. Otherwise two windows will refer to the same -! // location list. -! if (!newwin) -! ll_ref = curwin->w_llist_ref; -! - if (ll_ref != NULL) - { - // Find a non-quickfix window with this location list -*************** -*** 2952,2958 **** - - // If there is only one window and it is the quickfix window, create a - // new one above the quickfix window. -! if ((ONE_WINDOW && bt_quickfix(curbuf)) || !usable_win) - { - if (qf_open_new_file_win(ll_ref) != OK) - return FAIL; ---- 2963,2969 ---- - - // If there is only one window and it is the quickfix window, create a - // new one above the quickfix window. -! if ((ONE_WINDOW && bt_quickfix(curbuf)) || !usable_win || newwin) - { - if (qf_open_new_file_win(ll_ref) != OK) - return FAIL; -*************** -*** 3146,3162 **** - - /* - * Find a usable window for opening a file from the quickfix/location list. If -! * a window is not found then open a new window. - * Returns OK if successfully jumped or opened a window. Returns FAIL if not - * able to jump/open a window. Returns NOTDONE if a file is not associated - * with the entry. - */ - static int -! qf_jump_open_window(qf_info_T *qi, qfline_T *qf_ptr, int *opened_window) - { - // For ":helpgrep" find a help window or open one. - if (qf_ptr->qf_type == 1 && (!bt_help(curwin->w_buffer) || cmdmod.tab != 0)) -! if (jump_to_help_window(qi, opened_window) == FAIL) - return FAIL; - - // If currently in the quickfix window, find another window to show the ---- 3157,3178 ---- - - /* - * Find a usable window for opening a file from the quickfix/location list. If -! * a window is not found then open a new window. If 'newwin' is TRUE, then open -! * a new window. - * Returns OK if successfully jumped or opened a window. Returns FAIL if not - * able to jump/open a window. Returns NOTDONE if a file is not associated - * with the entry. - */ - static int -! qf_jump_open_window( -! qf_info_T *qi, -! qfline_T *qf_ptr, -! int newwin, -! int *opened_window) - { - // For ":helpgrep" find a help window or open one. - if (qf_ptr->qf_type == 1 && (!bt_help(curwin->w_buffer) || cmdmod.tab != 0)) -! if (jump_to_help_window(qi, newwin, opened_window) == FAIL) - return FAIL; - - // If currently in the quickfix window, find another window to show the -*************** -*** 3168,3174 **** - if (qf_ptr->qf_fnum == 0) - return NOTDONE; - -! if (qf_jump_to_usable_window(qf_ptr->qf_fnum, opened_window) == FAIL) - return FAIL; - } - ---- 3184,3191 ---- - if (qf_ptr->qf_fnum == 0) - return NOTDONE; - -! if (qf_jump_to_usable_window(qf_ptr->qf_fnum, newwin, -! opened_window) == FAIL) - return FAIL; - } - -*************** -*** 3229,3241 **** - } - - /* -! * jump to a quickfix line -! * if dir == FORWARD go "errornr" valid entries forward -! * if dir == BACKWARD go "errornr" valid entries backward -! * if dir == FORWARD_FILE go "errornr" valid entries files backward -! * if dir == BACKWARD_FILE go "errornr" valid entries files backward - * else if "errornr" is zero, redisplay the same line -! * else go to entry "errornr" - */ - void - qf_jump(qf_info_T *qi, ---- 3246,3258 ---- - } - - /* -! * Jump to a quickfix line. -! * If dir == FORWARD go "errornr" valid entries forward. -! * If dir == BACKWARD go "errornr" valid entries backward. -! * If dir == FORWARD_FILE go "errornr" valid entries files backward. -! * If dir == BACKWARD_FILE go "errornr" valid entries files backward - * else if "errornr" is zero, redisplay the same line -! * else go to entry "errornr". - */ - void - qf_jump(qf_info_T *qi, -*************** -*** 3243,3248 **** ---- 3260,3279 ---- - int errornr, - int forceit) - { -+ qf_jump_newwin(qi, dir, errornr, forceit, FALSE); -+ } -+ -+ /* -+ * As qf_info(). -+ * If 'newwin' is TRUE, then open the file in a new window. -+ */ -+ void -+ qf_jump_newwin(qf_info_T *qi, -+ int dir, -+ int errornr, -+ int forceit, -+ int newwin) -+ { - qf_list_T *qfl; - qfline_T *qf_ptr; - qfline_T *old_qf_ptr; -*************** -*** 3288,3294 **** - // window - print_message = FALSE; - -! retval = qf_jump_open_window(qi, qf_ptr, &opened_window); - if (retval == FAIL) - goto failed; - if (retval == NOTDONE) ---- 3319,3325 ---- - // window - print_message = FALSE; - -! retval = qf_jump_open_window(qi, qf_ptr, newwin, &opened_window); - if (retval == FAIL) - goto failed; - if (retval == NOTDONE) -*************** -*** 3824,3836 **** - - if (split) - { -! char_u cmd[32]; -! -! vim_snprintf((char *)cmd, sizeof(cmd), "split +%ld%s", -! (long)curwin->w_cursor.lnum, -! IS_LL_WINDOW(curwin) ? "ll" : "cc"); -! if (do_cmdline_cmd(cmd) == OK) -! do_cmdline_cmd((char_u *) "clearjumps"); - return; - } - ---- 3855,3863 ---- - - if (split) - { -! // Open the selected entry in a new window -! qf_jump_newwin(qi, 0, (long)curwin->w_cursor.lnum, FALSE, TRUE); -! do_cmdline_cmd((char_u *) "clearjumps"); - return; - } - -*** ../vim-8.1.0522/src/testdir/test_quickfix.vim 2018-10-28 14:36:04.222247691 +0100 ---- src/testdir/test_quickfix.vim 2018-11-11 22:46:08.525548009 +0100 -*************** -*** 3718,3720 **** ---- 3718,3766 ---- - call assert_equal(getcurpos()[4], virtcol('.')) - cclose | helpclose - endfunc -+ -+ " Test for opening a file from the quickfix window using CTRL-W <Enter> -+ " doesn't leave an empty buffer around. -+ func Test_splitview() -+ call s:create_test_file('Xtestfile1') -+ call s:create_test_file('Xtestfile2') -+ new | only -+ let last_bufnr = bufnr('Test_sv_1', 1) -+ let l = ['Xtestfile1:2:Line2', 'Xtestfile2:4:Line4'] -+ cgetexpr l -+ copen -+ let numbufs = len(getbufinfo()) -+ exe "normal \<C-W>\<CR>" -+ copen -+ exe "normal j\<C-W>\<CR>" -+ " Make sure new empty buffers are not created -+ call assert_equal(numbufs, len(getbufinfo())) -+ " Creating a new buffer should use the next available buffer number -+ call assert_equal(last_bufnr + 4, bufnr("Test_sv_2", 1)) -+ bwipe Test_sv_1 -+ bwipe Test_sv_2 -+ new | only -+ -+ " When split opening files from location list window, make sure that two -+ " windows doesn't refer to the same location list -+ lgetexpr l -+ let locid = getloclist(0, {'id' : 0}).id -+ lopen -+ exe "normal \<C-W>\<CR>" -+ call assert_notequal(locid, getloclist(0, {'id' : 0}).id) -+ call assert_equal(0, getloclist(0, {'winid' : 0}).winid) -+ new | only -+ -+ " When split opening files from a helpgrep location list window, a new help -+ " window should be opend with a copy of the location list. -+ lhelpgrep window -+ let locid = getloclist(0, {'id' : 0}).id -+ lwindow -+ exe "normal j\<C-W>\<CR>" -+ call assert_notequal(locid, getloclist(0, {'id' : 0}).id) -+ call assert_equal(0, getloclist(0, {'winid' : 0}).winid) -+ new | only -+ -+ call delete('Xtestfile1') -+ call delete('Xtestfile2') -+ endfunc -*** ../vim-8.1.0522/src/version.c 2018-11-11 22:18:17.214948188 +0100 ---- src/version.c 2018-11-11 22:49:25.382976159 +0100 -*************** -*** 794,795 **** ---- 794,797 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 523, - /**/ - --- -ARTHUR: Bloody peasant! -DENNIS: Oh, what a give away. Did you hear that, did you hear that, eh? - That's what I'm on about -- did you see him repressing me, you saw it - didn't you? - The Quest for the Holy Grail (Monty Python) - - /// 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 /// |