diff options
Diffstat (limited to 'data/vim/patches/8.1.0288')
-rw-r--r-- | data/vim/patches/8.1.0288 | 498 |
1 files changed, 498 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0288 b/data/vim/patches/8.1.0288 new file mode 100644 index 000000000..60c71cca8 --- /dev/null +++ b/data/vim/patches/8.1.0288 @@ -0,0 +1,498 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0288 +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.0288 +Problem: Quickfix code uses cmdidx too often. +Solution: Add is_loclist_cmd(). (Yegappan Lakshmanan) +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/quickfix.c + + +*** ../vim-8.1.0287/src/ex_docmd.c 2018-08-14 16:06:09.451696062 +0200 +--- src/ex_docmd.c 2018-08-15 20:53:22.429089025 +0200 +*************** +*** 12529,12534 **** +--- 12529,12548 ---- + } + #endif + ++ #ifdef FEAT_QUICKFIX ++ /* ++ * Returns TRUE if the supplied Ex cmdidx is for a location list command ++ * instead of a quickfix command. ++ */ ++ int ++ is_loclist_cmd(int cmdidx) ++ { ++ if (cmdidx < 0 || cmdidx > CMD_SIZE) ++ return FALSE; ++ return cmdnames[cmdidx].cmd_name[0] == 'l'; ++ } ++ #endif ++ + # if defined(FEAT_TIMERS) || defined(PROTO) + int + get_pressedreturn(void) +*** ../vim-8.1.0287/src/proto/ex_docmd.pro 2018-08-14 16:06:09.451696062 +0200 +--- src/proto/ex_docmd.pro 2018-08-15 20:50:10.242164053 +0200 +*************** +*** 70,75 **** +--- 70,76 ---- + char_u *get_messages_arg(expand_T *xp, int idx); + char_u *get_mapclear_arg(expand_T *xp, int idx); + void set_no_hlsearch(int flag); ++ int is_loclist_cmd(int cmdidx); + int get_pressedreturn(void); + void set_pressedreturn(int val); + /* vim: set ft=c : */ +*** ../vim-8.1.0287/src/quickfix.c 2018-08-11 13:36:51.806140673 +0200 +--- src/quickfix.c 2018-08-15 20:50:10.242164053 +0200 +*************** +*** 3330,3336 **** + recognised errors */ + qf_info_T *qi = &ql_info; + +! if (eap->cmdidx == CMD_llist) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 3330,3336 ---- + recognised errors */ + qf_info_T *qi = &ql_info; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 3478,3484 **** + qf_info_T *qi = &ql_info; + int count; + +! if (eap->cmdidx == CMD_lolder || eap->cmdidx == CMD_lnewer) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 3478,3484 ---- + qf_info_T *qi = &ql_info; + int count; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 3526,3532 **** + qf_info_T *qi = &ql_info; + int i; + +! if (eap->cmdidx == CMD_lhistory) + qi = GET_LOC_LIST(curwin); + if (qi == NULL || (qi->qf_listcount == 0 + && qf_list_empty(qi, qi->qf_curlist))) +--- 3526,3532 ---- + qf_info_T *qi = &ql_info; + int i; + +! if (is_loclist_cmd(eap->cmdidx)) + qi = GET_LOC_LIST(curwin); + if (qi == NULL || (qi->qf_listcount == 0 + && qf_list_empty(qi, qi->qf_curlist))) +*************** +*** 3745,3751 **** + qf_info_T *qi = &ql_info; + win_T *win; + +! if (eap->cmdidx == CMD_lwindow) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 3745,3751 ---- + qf_info_T *qi = &ql_info; + win_T *win; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 3781,3787 **** + win_T *win = NULL; + qf_info_T *qi = &ql_info; + +! if (eap->cmdidx == CMD_lclose || eap->cmdidx == CMD_lwindow) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 3781,3787 ---- + win_T *win = NULL; + qf_info_T *qi = &ql_info; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 3808,3814 **** + buf_T *qf_buf; + win_T *oldwin = curwin; + +! if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 3808,3814 ---- + buf_T *qf_buf; + win_T *oldwin = curwin; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 3953,3964 **** + * :cbottom/:lbottom commands. + */ + void +! ex_cbottom(exarg_T *eap UNUSED) + { + qf_info_T *qi = &ql_info; + win_T *win; + +! if (eap->cmdidx == CMD_lbottom) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 3953,3964 ---- + * :cbottom/:lbottom commands. + */ + void +! ex_cbottom(exarg_T *eap) + { + qf_info_T *qi = &ql_info; + win_T *win; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 4430,4437 **** + enc = (*curbuf->b_p_menc != NUL) ? curbuf->b_p_menc : p_menc; + #endif + +! if (eap->cmdidx == CMD_lmake || eap->cmdidx == CMD_lgrep +! || eap->cmdidx == CMD_lgrepadd) + wp = curwin; + + autowrite_all(); +--- 4430,4436 ---- + enc = (*curbuf->b_p_menc != NUL) ? curbuf->b_p_menc : p_menc; + #endif + +! if (is_loclist_cmd(eap->cmdidx)) + wp = curwin; + + autowrite_all(); +*************** +*** 4570,4576 **** + int i, sz = 0; + int prev_fnum = 0; + +! if (eap->cmdidx == CMD_ldo || eap->cmdidx == CMD_lfdo) + { + /* Location list */ + qi = GET_LOC_LIST(curwin); +--- 4569,4575 ---- + int i, sz = 0; + int prev_fnum = 0; + +! if (is_loclist_cmd(eap->cmdidx)) + { + /* Location list */ + qi = GET_LOC_LIST(curwin); +*************** +*** 4607,4613 **** + { + qf_info_T *qi = &ql_info; + +! if (eap->cmdidx == CMD_ldo || eap->cmdidx == CMD_lfdo) + { + /* Location list */ + qi = GET_LOC_LIST(curwin); +--- 4606,4612 ---- + { + qf_info_T *qi = &ql_info; + +! if (is_loclist_cmd(eap->cmdidx)) + { + /* Location list */ + qi = GET_LOC_LIST(curwin); +*************** +*** 4631,4637 **** + int i, eidx = 0; + int prev_fnum = 0; + +! if (eap->cmdidx == CMD_ldo || eap->cmdidx == CMD_lfdo) + { + /* Location list */ + qi = GET_LOC_LIST(curwin); +--- 4630,4636 ---- + int i, eidx = 0; + int prev_fnum = 0; + +! if (is_loclist_cmd(eap->cmdidx)) + { + /* Location list */ + qi = GET_LOC_LIST(curwin); +*************** +*** 4724,4735 **** + qf_info_T *qi = &ql_info; + int errornr; + +! if (eap->cmdidx == CMD_ll +! || eap->cmdidx == CMD_lrewind +! || eap->cmdidx == CMD_lfirst +! || eap->cmdidx == CMD_llast +! || eap->cmdidx == CMD_ldo +! || eap->cmdidx == CMD_lfdo) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 4723,4729 ---- + qf_info_T *qi = &ql_info; + int errornr; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 4743,4755 **** + errornr = (int)eap->line2; + else + { +! if (eap->cmdidx == CMD_cc || eap->cmdidx == CMD_ll) +! errornr = 0; +! else if (eap->cmdidx == CMD_crewind || eap->cmdidx == CMD_lrewind +! || eap->cmdidx == CMD_cfirst || eap->cmdidx == CMD_lfirst) +! errornr = 1; +! else +! errornr = 32767; + } + + /* For cdo and ldo commands, jump to the nth valid error. +--- 4737,4754 ---- + errornr = (int)eap->line2; + else + { +! switch (eap->cmdidx) +! { +! case CMD_cc: case CMD_ll: +! errornr = 0; +! break; +! case CMD_crewind: case CMD_lrewind: case CMD_cfirst: +! case CMD_lfirst: +! errornr = 1; +! break; +! default: +! errornr = 32767; +! } + } + + /* For cdo and ldo commands, jump to the nth valid error. +*************** +*** 4774,4788 **** + { + qf_info_T *qi = &ql_info; + int errornr; + +! if (eap->cmdidx == CMD_lnext +! || eap->cmdidx == CMD_lNext +! || eap->cmdidx == CMD_lprevious +! || eap->cmdidx == CMD_lnfile +! || eap->cmdidx == CMD_lNfile +! || eap->cmdidx == CMD_lpfile +! || eap->cmdidx == CMD_ldo +! || eap->cmdidx == CMD_lfdo) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 4773,4781 ---- + { + qf_info_T *qi = &ql_info; + int errornr; ++ int dir; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 4799,4815 **** + else + errornr = 1; + +! qf_jump(qi, (eap->cmdidx == CMD_cnext || eap->cmdidx == CMD_lnext +! || eap->cmdidx == CMD_cdo || eap->cmdidx == CMD_ldo) +! ? FORWARD +! : (eap->cmdidx == CMD_cnfile || eap->cmdidx == CMD_lnfile +! || eap->cmdidx == CMD_cfdo || eap->cmdidx == CMD_lfdo) +! ? FORWARD_FILE +! : (eap->cmdidx == CMD_cpfile || eap->cmdidx == CMD_lpfile +! || eap->cmdidx == CMD_cNfile || eap->cmdidx == CMD_lNfile) +! ? BACKWARD_FILE +! : BACKWARD, +! errornr, eap->forceit); + } + + /* +--- 4792,4819 ---- + else + errornr = 1; + +! // Depending on the command jump to either next or previous entry/file. +! switch (eap->cmdidx) +! { +! case CMD_cnext: case CMD_lnext: case CMD_cdo: case CMD_ldo: +! dir = FORWARD; +! break; +! case CMD_cprevious: case CMD_lprevious: case CMD_cNext: +! case CMD_lNext: +! dir = BACKWARD; +! break; +! case CMD_cnfile: case CMD_lnfile: case CMD_cfdo: case CMD_lfdo: +! dir = FORWARD_FILE; +! break; +! case CMD_cpfile: case CMD_lpfile: case CMD_cNfile: case CMD_lNfile: +! dir = BACKWARD_FILE; +! break; +! default: +! dir = FORWARD; +! break; +! } +! +! qf_jump(qi, dir, errornr, eap->forceit); + } + + /* +*************** +*** 4857,4865 **** + if (*eap->arg != NUL) + set_string_option_direct((char_u *)"ef", -1, eap->arg, OPT_FREE, 0); + +! if (eap->cmdidx == CMD_lfile +! || eap->cmdidx == CMD_lgetfile +! || eap->cmdidx == CMD_laddfile) + wp = curwin; + + /* +--- 4861,4867 ---- + if (*eap->arg != NUL) + set_string_option_direct((char_u *)"ef", -1, eap->arg, OPT_FREE, 0); + +! if (is_loclist_cmd(eap->cmdidx)) + wp = curwin; + + /* +*************** +*** 5178,5187 **** + #endif + } + +! if (eap->cmdidx == CMD_lgrep +! || eap->cmdidx == CMD_lvimgrep +! || eap->cmdidx == CMD_lgrepadd +! || eap->cmdidx == CMD_lvimgrepadd) + { + qi = ll_get_or_alloc_list(curwin); + if (qi == NULL) +--- 5180,5186 ---- + #endif + } + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = ll_get_or_alloc_list(curwin); + if (qi == NULL) +*************** +*** 6525,6533 **** + } + + /* Must come after autocommands. */ +! if (eap->cmdidx == CMD_lbuffer +! || eap->cmdidx == CMD_lgetbuffer +! || eap->cmdidx == CMD_laddbuffer) + { + qi = ll_get_or_alloc_list(curwin); + if (qi == NULL) +--- 6524,6530 ---- + } + + /* Must come after autocommands. */ +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = ll_get_or_alloc_list(curwin); + if (qi == NULL) +*************** +*** 6631,6639 **** + #endif + } + +! if (eap->cmdidx == CMD_lexpr +! || eap->cmdidx == CMD_lgetexpr +! || eap->cmdidx == CMD_laddexpr) + { + qi = ll_get_or_alloc_list(curwin); + if (qi == NULL) +--- 6628,6634 ---- + #endif + } + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = ll_get_or_alloc_list(curwin); + if (qi == NULL) +*************** +*** 6922,6928 **** + save_cpo = p_cpo; + p_cpo = empty_option; + +! if (eap->cmdidx == CMD_lhelpgrep) + { + qi = hgr_get_ll(&new_qi); + if (qi == NULL) +--- 6917,6923 ---- + save_cpo = p_cpo; + p_cpo = empty_option; + +! if (is_loclist_cmd(eap->cmdidx)) + { + qi = hgr_get_ll(&new_qi); + if (qi == NULL) +*** ../vim-8.1.0287/src/version.c 2018-08-14 22:08:20.211616525 +0200 +--- src/version.c 2018-08-15 20:51:09.609828450 +0200 +*************** +*** 796,797 **** +--- 796,799 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 288, + /**/ + +-- +INSPECTOR END OF FILM: Move along. There's nothing to see! Keep moving! + [Suddenly he notices the cameras.] +INSPECTOR END OF FILM: (to Camera) All right, put that away sonny. + [He walks over to it and puts his hand over the lens.] + "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/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |