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 #38 received at 28156 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii wrote:
>> (shell-command "ln -s '~' symlink")
>> 0
>> (file-symlink-p "symlink")
>> "~"
>> (rename-file "symlink" "/tmp/symlink")
>> nil
>> (file-symlink-p "/tmp/symlink")
>> "/home/eggert"
>
> If this is the problem,
It's just one instance of the problem.
> then let's solve it without affecting
> make-symbolic-link.
This instance of the problem occurs because rename-file calls
make-symbolic-link, and make-symbolic-link silently alters the link target. The
real problem here is with make-symbolic-link: the rename-file bug is just a symptom.
>> 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.
>
> But AFAIU, file-symlink-p can return a quoted name if its argument is
> quoted.
I don't know what you mean by "quoted". file-symlink-returns a string, and the
string is supposed to be the contents of the symlink. file-symlink-p is working
correctly here. It's make-symbolic-link (called from rename-file) that is
screwing up.
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.