Subject: bug#33564: Incorrect path canonicalisation

From: Eli Zaretskii <[email-masked]>
Date: Sat, 01 Dec 2018 22:30:49 +0200

tags 33564 notabug
thanks

> Date: Sat, 1 Dec 2018 21:04:50 +0100
> From: Mattias Andrée <[email-masked]>
> 
> 	cd
> 	mkdir -p 1/2
> 	cd 1/2
> 	echo 3 > ../../3
> 	ln -s ~ 4
> 	echo 5 > 5
> 	emacs 4/../5 # works, but shouldn't
> 	emacs 4/../$USER/3 # does not works, should

This is by design: expand-file-name doesn't follow symlinks.  It's
documented not to do that: see the doc string and the ELisp manual.

> On Linux, the proper way to get the canonical path
> for a file with the file descriptor $fd:

expand-file-name doesn't aim at yielding the canonical file name in
that sense.