|
From: | Paul Eggert |
Subject: | bug#28156: Emacs quietly munges symlink contents |
Date: | Sat, 26 Aug 2017 18:53:25 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 |
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.
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.Maybe we shall document it as well. Neither the docstring of `file-truename', nor the Lisp reference say something about.
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.
[Prev in Thread] | Current Thread | [Next in Thread] |