Subject: bug#33564: Incorrect path canonicalisation

From: Mattias Andrée <[email-masked]>
Date: Sat, 1 Dec 2018 22:14:30 +0100

On Sat, 1 Dec 2018 21:55:29 +0100
Andreas Schwab <[email-masked]> wrote:

> On Dez 01 2018, Mattias Andrée <[email-masked]> wrote:
> 
> > On Sat, 1 Dec 2018 21:27:27 +0100
> > Andreas Schwab <[email-masked]> wrote:
> >  
> >> On Dez 01 2018, Mattias Andrée <[email-masked]> wrote:
> >>   
> >> > Emacs 26.1 removes ..'s incorrectly from file names.
> >> > Emacs removes the directory in front the .. rather than
> >> > getting its parent directory.    
> >> 
> >> This is deliberate.  Emacs never consults the filesystem when
> >> canonicalizing filenames, as documented in expand-file-name.  This is
> >> consistent with the logical view of the filesystem, and how the shell
> >> builtin cd handles it.  
> >
> > What is the rationale for this?  
> 
> Canonicalizing is a pure textual operation.

Yes, you said, but why should Emacs canonicalise the file names
given in the command line in the first place? One would expect
that if you examine a file with for example stat or cat, you
with be working with that file with you give Emacs the same
file name.

> 
> > No other program Bash and Emacs behave this way, including the
> > coreutils.  
> 
> This is not true, as I explained above.

Okay, dash also behaves this way, but ls, cat, and nano, for example
don't (and no, you didn't explain, nor should you have, you should
have given counter examples, preferably GNU program). I don't know any
other program that behaves this way. The same think goes for resolving
~, normal programs use the file names given in the command line as is.

> Andreas.