diff options
Diffstat (limited to 'data/vim/patches/8.1.0165')
-rw-r--r-- | data/vim/patches/8.1.0165 | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0165 b/data/vim/patches/8.1.0165 new file mode 100644 index 000000000..39977900c --- /dev/null +++ b/data/vim/patches/8.1.0165 @@ -0,0 +1,123 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0165 +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.0165 +Problem: :clist output can be very long. +Solution: Support filtering :clist entries. (Yegappan Lakshmanan) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + + +*** ../vim-8.1.0164/src/quickfix.c Tue Jul 3 16:54:18 2018 +--- src/quickfix.c Sun Jul 8 15:53:26 2018 +*************** +*** 3051,3056 **** +--- 3051,3057 ---- + int qfFileAttr; + int qfSepAttr; + int qfLineAttr; ++ int filter_entry; + int all = eap->forceit; /* if not :cl!, only show + recognised errors */ + qf_info_T *qi = &ql_info; +*************** +*** 3120,3126 **** + { + if ((qfp->qf_valid || all) && idx1 <= i && i <= idx2) + { +- msg_putchar('\n'); + if (got_int) + break; + +--- 3121,3126 ---- +*************** +*** 3141,3146 **** +--- 3141,3160 ---- + vim_snprintf((char *)IObuff, IOSIZE, "%2d %s", + i, (char *)fname); + } ++ ++ // Support for filtering entries using :filter /pat/ clist ++ filter_entry = 1; ++ if (qfp->qf_module != NULL && *qfp->qf_module != NUL) ++ filter_entry &= message_filtered(qfp->qf_module); ++ if (fname != NULL) ++ filter_entry &= message_filtered(fname); ++ if (qfp->qf_pattern != NULL) ++ filter_entry &= message_filtered(qfp->qf_pattern); ++ filter_entry &= message_filtered(qfp->qf_text); ++ if (filter_entry) ++ goto next_entry; ++ ++ msg_putchar('\n'); + msg_outtrans_attr(IObuff, i == qi->qf_lists[qi->qf_curlist].qf_index + ? HL_ATTR(HLF_QFL) : qfFileAttr); + +*************** +*** 3175,3180 **** +--- 3189,3195 ---- + out_flush(); /* show one line at a time */ + } + ++ next_entry: + qfp = qfp->qf_next; + if (qfp == NULL) + break; +*************** +*** 4186,4191 **** +--- 4201,4207 ---- + } + if (res >= 0) + qf_list_changed(qi, qi->qf_curlist); ++ + // Remember the current quickfix list identifier, so that we can + // check for autocommands changing the current quickfix list. + save_qfid = qi->qf_lists[qi->qf_curlist].qf_id; +*** ../vim-8.1.0164/src/testdir/test_quickfix.vim Tue Jul 3 19:15:56 2018 +--- src/testdir/test_quickfix.vim Sun Jul 8 15:53:26 2018 +*************** +*** 3487,3489 **** +--- 3487,3506 ---- + call Xautocmd_changelist('c') + call Xautocmd_changelist('l') + endfunc ++ ++ " Tests for the ':filter /pat/ clist' command ++ func Test_filter_clist() ++ cexpr ['Xfile1:10:10:Line 10', 'Xfile2:15:15:Line 15'] ++ call assert_equal([' 2 Xfile2:15 col 15: Line 15'], ++ \ split(execute('filter /Line 15/ clist'), "\n")) ++ call assert_equal([' 1 Xfile1:10 col 10: Line 10'], ++ \ split(execute('filter /Xfile1/ clist'), "\n")) ++ call assert_equal([], split(execute('filter /abc/ clist'), "\n")) ++ ++ call setqflist([{'module' : 'abc', 'pattern' : 'pat1'}, ++ \ {'module' : 'pqr', 'pattern' : 'pat2'}], ' ') ++ call assert_equal([' 2 pqr:pat2: '], ++ \ split(execute('filter /pqr/ clist'), "\n")) ++ call assert_equal([' 1 abc:pat1: '], ++ \ split(execute('filter /pat1/ clist'), "\n")) ++ endfunc +*** ../vim-8.1.0164/src/version.c Sat Jul 7 23:07:35 2018 +--- src/version.c Sun Jul 8 15:54:40 2018 +*************** +*** 791,792 **** +--- 791,794 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 165, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +204. You're being audited because you mailed your tax return to the IRC. + + /// 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 /// |