GNU bug report logs -
#10489
24.0.92; dired-do-copy may create infinite directory hierarchy
Previous Next
Reported by: michael_heerdegen <at> web.de
Date: Thu, 12 Jan 2012 19:36:01 UTC
Severity: important
Tags: patch
Merged with 11130
Found in version 24.0.92
Done: Chong Yidong <cyd <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #32 received at 10489 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
>> Cc: 10489 <at> debbugs.gnu.org
>> Date: Fri, 13 Jan 2012 09:38:30 +0100
>>
>> > I don't think this will solves all the use cases. File names are not
>> > strings, you cannot compare them as literal strings and hope to plumb
>> > all the leaks.
>> A test with `equal' is already used in `dired-create-files',
>> (equal from to)
>> Is it the correct way to compare two filenames?
>
> I don't see how `equal' could help, unless someone teaches it to treat
> strings that are file names specially. I don't see such treatment in
> the current sources.
>
>> > Some situations which I think this patch will not handle correctly:
>> >
>> > . file names with different letter-case on a case-insensitive file
>> > system
>> Can you provide example or better a recipe.
>
> emacs -Q
> C-x d ~ RET
> <go to the line showing "Test">
> C ~/test RET
> yes RET
>
>> > . relative vs absolute file names
>> Same.
>
> M-: (dired-copy-file-recursive "foo/../Test" "./Test" t) RET
>
>> > . file names that are hard links to the same directory (this includes
>> > the infamous 8+3 short aliases on Windows)
>> Don't know on Windows, (My knowledge of links in windows is very
>> limited)
>> here it is difficult (impossible as User) to Hardlink a directory:
>>
>> --8<---------------cut here---------------start------------->8---
>> man ln:
>> -d, -F, --directory
>> allow the superuser to attempt to hard link directories
>> (note: will probably fail due to system restrictions,
>> even for the superuser)
>> --8<---------------cut here---------------end--------------->8---
>
> We don't disallow superusers from using Emacs, nor restrict Emacs
> usage only to filesystems where links to directories are impossible,
> do we? ;-)
I just want to be able to test:
cp "a_hardlink_of_/foo" "/foo"
> And what about symlinks?
>
> On Windows, you can have "C:/PROGRA~1" be the alias of
> "C:/Program Files", for example.
>
> Bottom line, I think you need:
>
> . make both file names absolute by calling expand-file-name on each
Ok
> . resolve links by calling file-truename on each (this will handle
> the 8+3 alias issue, as well as, AFAIK, the issue with links)
Ok
> . compare case-insensitively on MS-Windows and MS-DOS
let binding case-fold-search should be ok.
Thanks, I will add these modifications to the patch handling remote files.
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
This bug report was last modified 13 years and 58 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.