vim-patch:8.1.1281: cannot specify a count with :chistory

Problem:    Cannot specify a count with :chistory.
Solution:   Add a count to :chistory and :lhistory. (Yegappan Lakshmanan,
            closes vim/vim#4344)
8ffc7c8b5f
This commit is contained in:
Jan Edmund Lazo
2021-01-01 04:47:35 -05:00
parent d1608f7503
commit d7b577d6ab
4 changed files with 43 additions and 6 deletions

View File

@@ -490,8 +490,8 @@ module.cmds = {
},
{
command='chistory',
flags=bit.bor(TRLBAR),
addr_type='ADDR_NONE',
flags=bit.bor(RANGE, COUNT, TRLBAR),
addr_type='ADDR_UNSIGNED',
func='qf_history',
},
{
@@ -1470,8 +1470,8 @@ module.cmds = {
},
{
command='lhistory',
flags=bit.bor(TRLBAR),
addr_type='ADDR_NONE',
flags=bit.bor(RANGE, COUNT, TRLBAR),
addr_type='ADDR_UNSIGNED',
func='qf_history',
},
{

View File

@@ -3300,6 +3300,24 @@ void qf_history(exarg_T *eap)
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 = (int)(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 {

View File

@@ -1918,9 +1918,23 @@ func HistoryTest(cchar)
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([])