Subject: bug#25183: 26.0.50; expanding quoted file name on w32

From: Eli Zaretskii <[email-masked]>
Date: Sat, 24 Dec 2016 14:52:17 +0200

> Date: Tue, 13 Dec 2016 18:28:22 +0200
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> > From: Michael Albinus <[email-masked]>
> > Date: Tue, 13 Dec 2016 09:30:18 +0100
> > Cc: [email-masked]
> > 
> > It is not an annoyance coming from a user's bug report; I've stumbled
> > over this when running tramp-tests.el under many different environments.
> > 
> > (expand-file-name "/:/~/path/./file") => "/:c:/~/path/file"
> > 
> > looks better, althoug the volume drive would still disturb me. But
> > that's my personal preference, the result might be OK on MS Windows.
> > 
> > Eli?
> 
> I will look into this in a couple of days.

Sorry for the delay.

I looked into this, and I indeed think there might be a problem here.
I agree that "~" should not be expanded for file names escaped with
"/:", but before I propose a solution, I think we should decide
whether the "/:" escape should cause the rest be expanded "as usual",
i.e. produce an absolute file name after "/:" for local file names,
minus the "~" expansion.  Currently, Unix file names are not expanded
because '/' as the first character makes them look as absolute file
names.  MS-Windows specific code, OTOH, looks under the hood, and does
expand the rest.

IOW, the question is whether on Windows we should have this:

  (expand-file-name "/:~/path/./file") => "/:c:/~/path/file"

or this:

  (expand-file-name "/:~/path/./file") => "/:~/path/file"

If we want the former, then maybe the Unix code should be fixed to
produce "/:/~/path/file" in that case.

Thoughts?