Subject: Re: bug#70792: 30.0.50; [PATCH] Add Eshell support for expanding absolute file names within the current remote connection

From: Eli Zaretskii <[email-masked]>
Date: Thu, 09 May 2024 22:02:54 +0300

> From: Michael Albinus <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Thu, 09 May 2024 20:22:57 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> Hi Eli,
> 
> >> FTR, we *have* already two different kinds of quoting. "/:<something>"
> >> makes <something> local, whatever syntax it has (for example, Tramp file
> >> name syntax).
> >>
> >> "/method:user@host:/:<something>" makes <something> "local" on
> >> "/method:user@host:" whatever syntax it has.
> >
> > There's a fine nuance here: "/:" does NOT make a file name locale, it
> > prevents interpreting it as remote due to the "/something:" construct
> > in it.  "/:" does NOT change the semantics of "/foo/bar/baz", it only
> > changes the semantics of "/method:user@host:/foo/bar".
> 
> The intenmtion of file name quoting isn't to make a file name local or
> remote. This is just a side-effect in case of Tramp.

I agree (and tried to say the same in different words).

> The intention of file name quoting is to suppress file name handlers of
> any kind.

I agree.

> "/:/method:user@host:/foo/bar.gz" makes "/method:user@host:/foo/bar.gz"
> a literal file name, not to be transferred to any file name handler.
> 
> "/method:user@host:/:/foo/bar.gz" keeps the Tramp file name handler
> active, but makes "/:/foo/bar.gz" a literal file name "/foo/bar.gz" on
> the remote machine. This suppresses the jka-compr-handler, for example.
> 
> Likely, you mean the same, but I wanted to say it explicitly.

Yes, we agree.

Which is why I think using /: for "escaping to local" in Eshell is
confusing and should not be done.