Patch 8.1.1281
Problem:    Cannot specify a count with :chistory.
Solution:   Add a count to :chistory and :lhistory. (Yegappan Lakshmanan,
            closes #4344)
Files:      runtime/doc/quickfix.txt,  src/ex_cmds.h,  src/quickfix.c,
            src/testdir/test_quickfix.vim


*** ../vim-8.1.1280/runtime/doc/quickfix.txt    2019-05-05 18:11:46.320590639 
+0200
--- runtime/doc/quickfix.txt    2019-05-05 20:51:22.585954153 +0200
***************
*** 139,146 ****
  :[count]lab[ove]      Same as ":cabove", except the location list for the
                        current window is used instead of the quickfix list.
  
!                                                       *:cbe* *:cbelow*
! :[count]cbe[low]      Go to the [count] error below the current line in the
                        current buffer.  If [count] is omitted, then 1 is
                        used.  If there are no errors, then an error message
                        is displayed.  Assumes that the entries in a quickfix
--- 139,146 ----
  :[count]lab[ove]      Same as ":cabove", except the location list for the
                        current window is used instead of the quickfix list.
  
!                                                       *:cbel* *:cbelow*
! :[count]cbel[ow]      Go to the [count] error below the current line in the
                        current buffer.  If [count] is omitted, then 1 is
                        used.  If there are no errors, then an error message
                        is displayed.  Assumes that the entries in a quickfix
***************
*** 164,171 ****
                        number of entries before the current position, then
                        the first error in the file is selected.
  
!                                                       *:lbef* *:lbefore*
! :[count]lbef[ore]     Same as ":cbefore", except the location list for the
                        current window is used instead of the quickfix list.
  
                                                        *:caf* *:cafter*
--- 164,171 ----
                        number of entries before the current position, then
                        the first error in the file is selected.
  
!                                                       *:lbe* *:lbefore*
! :[count]lbe[fore]     Same as ":cbefore", except the location list for the
                        current window is used instead of the quickfix list.
  
                                                        *:caf* *:cafter*
***************
*** 536,541 ****
--- 536,564 ----
                                etc.
  <                     Otherwise it works the same as `:ldo`.
  
+ FILTERING A QUICKFIX OR LOCATION LIST:
+                                   *cfilter-plugin* *:Cfilter* *:Lfilter*
+ If you have too many entries in a quickfix list, you can use the cfilter
+ plugin to reduce the number of entries.  Load the plugin with: >
+ 
+     packadd cfilter
+ 
+ Then you can use the following commands to filter a quickfix/location list: >
+ 
+     :Cfilter[!] /{pat}/
+     :Lfilter[!] /{pat}/
+ 
+ The |:Cfilter| command creates a new quickfix list from the entries matching
+ {pat} in the current quickfix list. {pat} is a Vim |regular-expression|
+ pattern. Both the file name and the text of the entries are matched against
+ {pat}. If the optional ! is supplied, then the entries not matching {pat} are
+ used. The pattern can be optionally enclosed using one of the following
+ characters: ', ", /. If the pattern is empty, then the last used search
+ pattern is used.
+ 
+ The |:Lfilter| command does the same as |:Cfilter| but operates on the current
+ location list.
+ 
  =============================================================================
  2. The error window                                   *quickfix-window*
  
***************
*** 822,835 ****
                        the current window instead of the quickfix list.
  
                                                *:chistory* *:chi*
! :chi[story]           Show the list of error lists.  The current list is
                        marked with ">".  The output looks like:
                                  error list 1 of 3; 43 errors ~
                                > error list 2 of 3; 0 errors ~
                                  error list 3 of 3; 15 errors ~
  
                                                *:lhistory* *:lhi*
! :lhi[story]           Show the list of location lists, otherwise like
                        `:chistory`.
  
  When adding a new error list, it becomes the current list.
--- 845,863 ----
                        the current window instead of the quickfix list.
  
                                                *:chistory* *:chi*
! :[count]chi[story]    Show the list of error lists.  The current list is
                        marked with ">".  The output looks like:
                                  error list 1 of 3; 43 errors ~
                                > error list 2 of 3; 0 errors ~
                                  error list 3 of 3; 15 errors ~
  
+                       When [count] is given, then the count'th quickfix
+                       list is made the current list. Example: >
+                               " Make the 4th quickfix list current
+                               :4chistory
+ <
                                                *:lhistory* *:lhi*
! :[count]lhi[story]    Show the list of location lists, otherwise like
                        `:chistory`.
  
  When adding a new error list, it becomes the current list.
***************
*** 1641,1662 ****
  recognized as a command separator.  The backslash before each space is
  required for the set command.
  
-                                   *cfilter-plugin* *:Cfilter* *:Lfilter*
- If you have too many matching messages, you can use the cfilter plugin to
- reduce the number of entries.  Load the plugin with: >
-    packadd cfilter
- 
- Then you can use these command: >
-    :Cfilter[!] /{pat}/
-    :Lfilter[!] /{pat}/
- 
- :Cfilter creates a new quickfix list from entries matching {pat} in the
- current quickfix list. Both the file name and the text of the entries are
- matched against {pat}. If ! is supplied, then entries not matching {pat} are
- used.
- 
- :Lfilter does the same as :Cfilter but operates on the current location list.
- 
  =============================================================================
  8. The directory stack                                
*quickfix-directory-stack*
  
--- 1669,1674 ----
*** ../vim-8.1.1280/src/ex_cmds.h       2019-05-05 15:02:26.176319819 +0200
--- src/ex_cmds.h       2019-05-05 20:48:37.758956072 +0200
***************
*** 336,343 ****
                        RANGE|BUFNAME|COUNT|EXTRA|TRLBAR,
                        ADDR_OTHER),
  EX(CMD_chistory,      "chistory",     qf_history,
!                       TRLBAR,
!                       ADDR_NONE),
  EX(CMD_clist,         "clist",        qf_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
                        ADDR_NONE),
--- 336,343 ----
                        RANGE|BUFNAME|COUNT|EXTRA|TRLBAR,
                        ADDR_OTHER),
  EX(CMD_chistory,      "chistory",     qf_history,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_UNSIGNED),
  EX(CMD_clist,         "clist",        qf_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
                        ADDR_NONE),
***************
*** 828,835 ****
                        EXTRA|NOTRLCOM|NEEDARG,
                        ADDR_NONE),
  EX(CMD_lhistory,      "lhistory",     qf_history,
!                       TRLBAR,
!                       ADDR_NONE),
  EX(CMD_ll,            "ll",           ex_cc,
                        RANGE|COUNT|TRLBAR|BANG,
                        ADDR_QUICKFIX),
--- 828,835 ----
                        EXTRA|NOTRLCOM|NEEDARG,
                        ADDR_NONE),
  EX(CMD_lhistory,      "lhistory",     qf_history,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_UNSIGNED),
  EX(CMD_ll,            "ll",           ex_cc,
                        RANGE|COUNT|TRLBAR|BANG,
                        ADDR_QUICKFIX),
*** ../vim-8.1.1280/src/quickfix.c      2019-05-05 15:02:26.180319795 +0200
--- src/quickfix.c      2019-05-05 20:48:37.762956047 +0200
***************
*** 3742,3747 ****
--- 3742,3768 ----
      qf_info_T *qi = qf_cmd_get_stack(eap, FALSE);
      int               i;
  
+     if (eap->addr_count > 0)
+     {
+       if (qi == NULL)
+       {
+           emsg(_(e_loclist));
+           return;
+       }
+ 
+       // Jump to the specified quickfix list
+       if (eap->line2 > 0 && eap->line2 <= qi->qf_listcount)
+       {
+           qi->qf_curlist = eap->line2 - 1;
+           qf_msg(qi, qi->qf_curlist, "");
+           qf_update_buffer(qi, NULL);
+       }
+       else
+           emsg(_(e_invrange));
+ 
+       return;
+     }
+ 
      if (qf_stack_empty(qi))
        msg(_("No entries"));
      else
*** ../vim-8.1.1280/src/testdir/test_quickfix.vim       2019-05-05 
15:02:26.180319795 +0200
--- src/testdir/test_quickfix.vim       2019-05-05 20:48:37.762956047 +0200
***************
*** 1831,1839 ****
--- 1831,1853 ----
    call assert_equal('  error list 2 of 3; 2 ' . common, res[1])
    call assert_equal('> error list 3 of 3; 3 ' . common, res[2])
  
+   " Test for changing the quickfix lists
+   call assert_equal(3, g:Xgetlist({'nr' : 0}).nr)
+   exe '1' . a:cchar . 'hist'
+   call assert_equal(1, g:Xgetlist({'nr' : 0}).nr)
+   exe '3' . a:cchar . 'hist'
+   call assert_equal(3, g:Xgetlist({'nr' : 0}).nr)
+   call assert_fails('-2' . a:cchar . 'hist', 'E16:')
+   call assert_fails('4' . a:cchar . 'hist', 'E16:')
+ 
    call g:Xsetlist([], 'f')
    let l = split(execute(a:cchar . 'hist'), "\n")
    call assert_equal('No entries', l[0])
+   if a:cchar == 'c'
+     call assert_fails('4chist', 'E16:')
+   else
+     call assert_fails('4lhist', 'E776:')
+   endif
  
    " An empty list should still show the stack history
    call g:Xsetlist([])
*** ../vim-8.1.1280/src/version.c       2019-05-05 18:11:46.336590548 +0200
--- src/version.c       2019-05-05 20:59:35.150902389 +0200
***************
*** 769,770 ****
--- 769,772 ----
  {   /* Add new patch number below this line */
+ /**/
+     1281,
  /**/

-- 
Every exit is an entrance into something else.

 /// Bram Moolenaar -- [email protected] -- 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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui