forked from aniani/vim
patch 9.1.0420: :browse oldfiles prompts even with single entry
Problem: :browse oldfiles prompts even with single entry Solution: Do not prompt, but edit the file directly, also when using :filter /pat/ browse oldfiles closes: #14794 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -5622,6 +5622,9 @@ ex_oldfiles(exarg_T *eap UNUSED)
|
||||
listitem_T *li;
|
||||
int nr = 0;
|
||||
char_u *fname;
|
||||
// for a single filtered match, remember the number
|
||||
// so we can jump directly to it without prompting
|
||||
int matches = -1;
|
||||
|
||||
if (l == NULL)
|
||||
{
|
||||
@@ -5637,6 +5640,10 @@ ex_oldfiles(exarg_T *eap UNUSED)
|
||||
fname = tv_get_string(&li->li_tv);
|
||||
if (!message_filtered(fname))
|
||||
{
|
||||
if (matches < 0)
|
||||
matches = nr;
|
||||
else
|
||||
matches = 0;
|
||||
msg_outnum((long)nr);
|
||||
msg_puts(": ");
|
||||
msg_outtrans(fname);
|
||||
@@ -5654,7 +5661,15 @@ ex_oldfiles(exarg_T *eap UNUSED)
|
||||
if (cmdmod.cmod_flags & CMOD_BROWSE)
|
||||
{
|
||||
quit_more = FALSE;
|
||||
nr = prompt_for_number(FALSE);
|
||||
// we only need to prompt if there is more than 1 match
|
||||
if (matches > 0)
|
||||
{
|
||||
nr = matches;
|
||||
// msg_putchar above sets needs_wait_return
|
||||
need_wait_return = FALSE;
|
||||
}
|
||||
else
|
||||
nr = prompt_for_number(FALSE);
|
||||
msg_starthere();
|
||||
if (nr > 0)
|
||||
{
|
||||
|
Reference in New Issue
Block a user