GNU bug report logs -
#28156
Emacs quietly munges symlink contents
Previous Next
Reported by: Paul Eggert <eggert <at> cs.ucla.edu>
Date: Sun, 20 Aug 2017 10:29:01 UTC
Severity: normal
Tags: patch
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
Message #94 received at 28156-done <at> debbugs.gnu.org (full text, mbox):
Michael Albinus wrote:
> What about file-truename? I believe it still must quote the result,
> otherwise we run into problems. See
>
> (make-symbolic-link "/x:y:" "/tmp/foo")
> (file-truename "/tmp/foo")
>
> The latter shall return "/:/x:y:" (as of today) instead of
> "/x:y:".
Thanks for catching that. While looking into it, I noticed that file-truename
has long mishandled symlink contents starting with ~ as in the following example:
$ ln -s '~nosuchuser' /tmp/foo
$ ls -l /tmp/foo
lrwxrwxrwx. 1 eggert eggert 11 Aug 26 18:51 /tmp/foo -> ~nosuchuser
$ src/emacs -Q -batch -eval '(message "%S" (file-truename "/tmp/foo"))'
"/home/eggert/src/gnu/emacs/master-tmp/~nosuchuser"
I fixed both problems.
> Maybe we shall document it as well. Neither the docstring of
> `file-truename', nor the Lisp reference say something about.
Yes, the documentation could stand some improving here. I fixed it up a bit,
though not in the file-truename area as I'm thinking we may need some more
changes here and would like to cogitate about it first. I'll CC: you on any
further bug reports in this area.
I rebased the patch to master which simplified it since I no longer had to worry
about Tramp tests, and installed the result. Closing this bug report.
This bug report was last modified 7 years and 270 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.