bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#28156: Emacs quietly munges symlink contents


From: Paul Eggert
Subject: bug#28156: Emacs quietly munges symlink contents
Date: Sun, 20 Aug 2017 11:53:55 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

Michael Albinus wrote:
We have quoting for these cases.
Quoting does not work for these cases. If I try to rename a symlink to
the literal string '~eggert' on my machine, Emacs will misbehave as
described and there is no way to quote the string naming the symlink
to fix this.
(make-symbolic-link "~/.emacs" "/:/tmp/~eggert") ...

That's not the problem I was referring to. Sorry, I should have given more detail. By "misbehave as described" I was referring to an earlier-mentioned scenario where rename-file copies because the source and destination are on different filesystems. For example, suppose the current directory is on a different filesystem from /tmp, and I execute the following in my *scratch* buffer:

(shell-command "ln -s '~' symlink")
0
(file-symlink-p "symlink")
"~"
(rename-file "symlink" "/tmp/symlink")
nil
(file-symlink-p "/tmp/symlink")
"/home/eggert"

Here, rename-file quietly expands the symlink contents, which is a bug. As far as I can see, one cannot work around the bug by using Tramp quoting; for example, (rename-file "/:symlink" "/:/tmp/symlink") does the same thing that (rename-file "symlink" "/tmp/symlink") does.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]