Subject: bug#10085: 24.0.91; completion-pcm--find-all-completions returns wrong remote file names

From: Stefan Monnier <[email-masked]>
Date: Wed, 27 Apr 2016 15:16:29 -0400

> Hmm, "/sudo:" is a valid remote file name. It uses as method the value
> of `tramp-default-host', and as host the string between "/" and
> ":".  That's how it is specified.

Where/who specifies it?  AFAIK *you* specify it, so you can change it.
More specifically, I think it's OK to say:

   /sudo:      is matched as /<method>:
   /sudo:foo   is matched as /<method>:foo
   /sudo:foo/  is matched as /<host>:foo/

As you know, I'd even be happy to do

   /sudo:foo/  is matched as /<method>:foo/

and force the user to write

   /ssh:sudo:
or
   /sudo.domain:

when she wants to access a host whose name is the same as an existing method.

But IIUC you want to preserve the old /<host>: syntax a bit more
closely, so I think

   /sudo:      is matched as /<method>:
   /sudo:foo   is matched as /<method>:foo
   /sudo:foo/  is matched as /<host>:foo/

might be an acceptable middle ground.

> How shall Tramp know from the syntactical point of view, that "sudo"
> is meant as method?

By fiat ;-)

> It cannot, unless somebody tells it to Tramp, for example by
> let-binding `non-essential'.

IIUC you'd rather skip this part of the discussion, so I won't get into
it ;-)

> Whatever I'll do, it will go into master.

Sounds good to me.

        Stefan