Subject: Re: bug#78925: 31.0.50; ffap's filename prompt problem in remote files

From: Eli Zaretskii <[email-masked]>
Date: Mon, 30 Jun 2025 15:58:11 +0300

> From: Liu Hui <[email-masked]>
> Date: Mon, 30 Jun 2025 17:54:31 +0800
> 
> When using ffap in remote files, I find the guess of filename at point
> in the prompt, which is mainly determined by ffap-file-at-point, is
> not suitable or at least inconsistent.
> 
> Case 1:
> 
> 1. emacs -Q
> 2. Open a remote file:
>    C-x C-f /ssh:server:~/test_file
> 3. type a filename that exists in localhost (e.g. /etc/hosts), and M-x ffap
> 
> ffap finds the local file /etc/hosts instead of the remote one. The
> reason is that ffap-file-at-point always checks the local file first.
> ffap-file-at-point only tries to find remote file if there is no
> existing local file.
> 
> However, it is more reasonable to first check (or only check) remote
> file and always prompt remote filename (i.e. /ssh:server:/etc/hosts)
> in remote cases.

I don't think I agree.  However, perhaps a user option or a prefix
argument could be used to control which behavior is preferred.

> Case 2:
> 
> 1. emacs -Q
> 2. Open a file in a remote project:
>    C-x C-f /ssh:server:~/a_git_project/test_file
> 3. Create a file that exists outside the project in the remote host, e.g.
>    M-! touch /tmp/abc
> 4. type the above filename (i.e. /tmp/abc), in test_file, and M-x ffap
> 
> ffap prompts /ssh:server:~/a_git_project/tmp/abc, while in Emacs 29
> prompts /ssh:server:/tmp/abc correctly. This problem seems to be
> related to commit 1eae0e7edf4.

This is a separate issue, please submit a separate bug report for it.