Subject: bug#34529: C-x b became unusable (ido, recentf, tramp)

From: Michael Albinus <[email-masked]>
Date: Wed, 20 Feb 2019 10:40:01 +0100

Felicián Németh <[email-masked]> writes:

> Hi Michael,

Hi Felicián,

> However, the problem occurred in a long lasting emacs session and I do
> remember trying to ssh|su into a remote system.  It wasn't successful
> because (I think) tramp failed to find the password prompt because of
> an unfortunate locale setting.
>
> However, I found a probable cause of evenets that inserts a wrong entry
> into recentf-list:
>   bug.el:
>      (require 'recentf)
>      (setq recentf-save-file "/tmp/bug2-recentf")
>      (setq ido-use-virtual-buffers t)
>      (setq ido-save-directory-list-file "/tmp/bug-ido.last")
>      (ido-mode t)
>      (ffap-bindings)
>   0. emacs -Q -l bug.el
>   1. Open a relative file in a VM (/ssh:localhost#2222:~/a.txt)
>   2. Close the file, halt the VM.
>   3. (Accidentally) open the same file from the file-name-history.
>      (C-x C-f M-p)
>   4. Close emacs.
>     => /tmp/bug2-recentf has the relative path.

This doesn't sound like an error. recentf does what you tell it to
do. After step 3, there is a buffer with the remote file name
"/ssh:localhost#2222:~/a.txt". recentf stores also remote file names,
according to `recentf-keep-default-predicate':

--8<---------------cut here---------------start------------->8---
 (cond
   ((file-remote-p file nil t) (file-readable-p file))
   ((file-remote-p file))
   ((file-readable-p file))))
--8<---------------cut here---------------end--------------->8---

The problem seems to be rather ido. Could you pls check bug#24980? It
sounds similar to your problem, and it was solved in Emacs 26.1. Btw,
which Emacs version are you running?

> Thanks again,
> Felicián

Best regards, Michael.