GNU bug report logs - #66340
30.0.50; file-relative-name not correct if default-directory with symbolic link

Previous Next

Package: emacs;

Reported by: Nan JunJie <nanjunjie <at> 139.com>

Date: Wed, 4 Oct 2023 12:53:03 UTC

Severity: normal

Found in version 30.0.50

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nan JunJie <nanjunjie <at> 139.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; file-relative-name not correct if default-directory with
 symbolic link
Date: Wed, 04 Oct 2023 19:25:01 +0800
for example, say I have below symbolic link:

/home/nanjj/tmp/nanjj.github.io ->
/home/nanjj/src/githu.com/nanjj/nanjj.github.io

I run (file-relative-name "/tmp") under /home/nanjj/tmp/nanjj.github.io,
it should output "../../../../../../../tmp" instead of
"../../../../tmp".

One possible fix listed as below:

From 21936e7aca04db7ab00f98d0265afa900d27177e Mon Sep 17 00:00:00 2001
From: Nan Jun Jie <nanjunjie <at> 139.com>
Date: Wed, 4 Oct 2023 19:10:04 +0800
Subject: [PATCH] Fixed file-relative-name issue

if default-directory has symbolic link in the path, the
file-relative-name result is not correct.
---
 lisp/files.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/files.el b/lisp/files.el
index ddae097f1d1..124710dde48 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -5545,8 +5545,9 @@ file-relative-name
 on a DOS/Windows machine, it returns FILENAME in expanded form."
   (save-match-data
     (setq directory
-	  (file-name-as-directory (expand-file-name (or directory
-							default-directory))))
+          (file-truename
+	   (file-name-as-directory (expand-file-name (or directory
+							 default-directory)))))
     (setq filename (expand-file-name filename))
     (let ((fremote (file-remote-p filename))
 	  (dremote (file-remote-p directory))
-- 
2.40.1



-- 
https://nanjj.srht.site
 ∧ ∧︵
ミ^ō^ミ灬)~
https://nanjj.github.io





This bug report was last modified 1 year and 318 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.