Subject: bug#27982: closed (Re: bug#27982: 25.1.50; expand-file-name docstring on how to traverse the filesystem)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 30 Aug 2017 15:45:02 +0000

Your bug report

#27982: 25.1.50; expand-file-name docstring on how to traverse the filesystem

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
27982: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=27982
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#27982: 25.1.50; expand-file-name docstring on how to traverse the filesystem
From: Nicolas Richard <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Wed, 30 Aug 2017 17:43:51 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Eli,

Thanks for your help but let me close this.

I initially thought it was "obviously wrong", but it is not. I think the
wording is slightly misleading (e.g. "dirname" vs "dir-as-file-name"),
but nothing important.

Nicolas.

Eli Zaretskii <[email-masked]> writes:

>> From: Nicolas Richard <[email-masked]>
>> Cc: [email-masked]
>> Date: Wed, 23 Aug 2017 21:18:53 +0200
>>
>> Ok so now I'm saying that, with the suggestion in the docstring, output
>> will be different if "dirname" ends in a slash.
>
> Of course.  directory-file-name and file-name-directory look at the
> slashes, so having one more slash at the end changes everything.
> There's nothing new here.
>
> So where do we go from here, in the context of this bug report?  What
> would you propose to change, where, and why?
>
> Thanks.

--

Subject: 25.1.50; expand-file-name docstring on how to traverse the filesystem
From: Nicolas Richard <[email-masked]>
To: [email-masked]
Date: Sun, 06 Aug 2017 13:38:32 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

The docstring of expand-file-name suggest
(directory-file-name (file-name-directory dirname))
to traverse a directory

This looks wrong to me, e.g.
(list current-directory
      (directory-file-name (file-name-directory current-directory)))
 => ("/home/youngfrog/" "/home/youngfrog")

I think it should be (file-name-directory (directory-file-name dirname))
instead. Then the example becomes:

(list current-directory
      (file-name-directory (directory-file-name current-directory)))
 => ("/home/youngfrog/" "/home/")

Am I overlooking something ?
Is this patch ok to commit ?

In GNU Emacs 25.1.50.1 (x86_64-pc-linux-gnu)
 of 2016-11-15 built on phie-fixe
Repository revision: f994c2046588b168c1a4a900879cdffaf9d02f01
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description:	Ubuntu 16.04.2 LTS

>From 607e1445cfb1294c14af38cb4c39a93683e5671d Mon Sep 17 00:00:00 2001
From: Nicolas Richard <[email-masked]>
Date: Sun, 6 Aug 2017 13:14:41 +0200
Subject: [PATCH] * src/fileio.c (Fexpand_file_name): fix suggestion to
 traverse the filesystem

---
 src/fileio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/fileio.c b/src/fileio.c
index c3b2be7..28d619c 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -776,7 +776,7 @@ See also the function `substitute-in-file-name'.
 For technical reasons, this function can return correct but
 non-intuitive results for the root directory; for instance,
 \(expand-file-name ".." "/") returns "/..".  For this reason, use
-\(directory-file-name (file-name-directory dirname)) to traverse a
+\(file-name-directory (directory-file-name dirname)) to traverse a
 filesystem tree, not (expand-file-name ".."  dirname).  */)
   (Lisp_Object name, Lisp_Object default_directory)
 {
-- 
2.7.4