Tags: patch The attached patch fixes some Emacs behavior that disagrees with the documentation. Although the user manual says that make-symbolic-link "does not expand the argument TARGET", Emacs expands leading "~" in the target. Also, file-symlink-p quietly munges symlink contents if they appear to be a Tramp file name. This behavior makes it impossible to write Emacs code that deals with arbitrary local symbolic links, and Emacs mishandles copying of some symlinks for this reason. At the operating system level, symlink targets are merely strings, and are not file names that are interpreted (any interpretation occurs later, only when the symlinks are followed), and Emacs should be consistent with that. It strikes me that a similar change probably needs to be made to Tramp, so that remote symlinks also can be arbitrary strings too. However, that's outside my expertise so this patch affects only local symlink contents.