GNU bug report logs - #24441
24.5; rename directory in dired to change case

Previous Next

Package: emacs;

Reported by: Brady Trainor <brady <at> bradyt.com>

Date: Thu, 15 Sep 2016 04:01:02 UTC

Severity: normal

Merged with 22300

Found in versions 24.5, 25.1.50

Fixed in version 26.1

Done: Ken Brown <kbrown <at> cornell.edu>

Bug is archived. No further changes may be made.

Full log


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

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Ken Brown <kbrown <at> cornell.edu>
Cc: Keith David Bershatsky <esq <at> lawlist.com>, Andreas Schwab <schwab <at> suse.de>,
 Brady Trainor <brady <at> bradyt.com>, Michael Albinus <michael.albinus <at> gmx.de>,
 24441 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: bug#24441: 24.5; rename directory in dired to change case
Date: Mon, 14 Nov 2016 12:33:27 -0800
[Message part 1 (text/plain, inline)]
Three comments about that fix.

1. Emacs seems to conflate whether a file system is case-sensitive, and 
whether it is case-preserving. Darwin pathconf distinguishes between 
_PC_CASE_SENSITIVE and _PC_CASE_PRESERVING. For example, perhaps the 
following code in dired-do-create-files:

               (if (and (file-name-case-insensitive-p (car fn-list))
                    (eq op-symbol 'move)
                    dired-one-file

should also check whether (car fn-list) is on a case-preserving file 
system (if not, there's no point going ahead, as the user can't change 
the case anyway). I suppose this would require adding a Lisp predicate 
for _PC_CASE_PRESERVING. (Possibly the MS-Windows code already deals 
with this, and Cygwin and macOS are currently broken.)

2. From my reading of the Apple documentation, the code taken from that 
circa-2007 website should have problems on some file systems. It does 
not match what Wine does in a similar situation.

3. Nowadays, I hope pathconf works on Apple; that's simpler. If not, I 
think the Wine approach should be better. So I installed the attached 
patch to try to do that. If you have access to a case-insensitive file 
system on macOS, please try it out as-is, or compiled with 
-DDARWIN_OS_CASE_SENSITIVE_FIXME=1 or 
-DDARWIN_OS_CASE_SENSITIVE_FIXME=2, and let me know how it works.

[0001-Improve-case-insensitive-checks-Bug-24441.patch (application/x-patch, attachment)]

This bug report was last modified 8 years and 60 days ago.

Previous Next


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