Subject: bug#61613: 30.0.50; ffap-other-window ignores ffap-require-prefix

From: Eli Zaretskii <[email-masked]>
Date: Mon, 20 Feb 2023 19:01:20 +0200

> Date: Mon, 20 Feb 2023 16:49:15 +0100
> From: Ergus <[email-masked]>
> Cc: [email-masked]
> 
> >> So, what do you think? The fix may be to put the ffap-require-prefix
> >> condition in ffap-read-file-or-url directly or in ffap-prompter??
> >
> >I don't understand what you want to achieve by that, so please
> >elaborate.  ffap-file-finder's default value is a command that doesn't
> >display the file in another window, so how will ffap-require-prefix
> >help here?
> 
>  From the example above I expect that after:
> 
> (setq ffap-require-prefix t)
> C-x 4 f
> 
> You see ~/ instead of /somedir. Like when we do C-x C-f.

That's not what ffap-require-prefix does:

  (defcustom ffap-require-prefix nil
    "If set, reverses the prefix argument to `find-file-at-point'.
  This is nil so neophytes notice ffap.  Experts may prefer to disable
  ffap most of the time."

> As I said before, ffap-prompter is causing this because it is called
> before switching window.

So what we need is fix how the prompt is calculated, not what is the
meaning of the prefix arg.

> So ffap-file-finder is actually called at point before going to another
> window. And it does not have any ffap-require-prefix condition. My
> question is actually that.

Once again, calling ffap-file-finder in this case is WRONG!  We need a
function that visits the file in another window, and ffap-file-finder
doesn't.

IOW, you are talking about a very different change to
ffap-other-window.

> We need to put the ffap-require-prefix condition somewhere in
> ffap-read-file-or-url or ffap-prompter. Because this problem happens
> with the other-frame and other-tab variants as well.

I think we need to rewrite the interactive spec of those to do what
you want.  ffap-require-prefix is not related to this at all.