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 #20 received at 28156 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Eli Zaretskii 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.
> doesn't Emacs behave here like Unix shell commands do?
They differ in many ways. Two examples. First, the Unix shell command 'ln -s
~/$$ def' expands both the "~" and the "$$", whereas (make-symbolic-link "~/$$"
"def") expands only the "~". Second, the Unix shell command "ln -s def" creates
a symlink to itself, whereas (make-symbolic-link "def") is an error. Briefly,
the Unix shell commands are higher-level than the Emacs primitives.
The main points here are (1) Emacs functions should let users create and
manipulate whatever symlinks they want to, and (2) the documentation has long
said that symlinks are not expanded.
> If make-symbolic-link would create a link like this:
>
> ttt -> ~/bin/etags
>
> (which is what your proposed change does, right?), then programs which
> follow the link will probably fail
Yes, they will fail unless there is a directory named '~'. That is the intent.
If I want to create a symlink to my home directory, I can use expand-file-name
on the link target, before calling make-symbolic-link.
> this text should be clarified.
Sure, that's easy. Revised patch attached.
[0001-Do-not-munge-contents-of-local-symbolic-links.patch (text/x-patch, attachment)]
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.