Subject: bug#10489: 24.0.92; dired-do-copy may create infinite directory hierarchy

From: Michael Albinus <[email-masked]>
Date: Sun, 15 Jan 2012 20:49:18 +0100

Thierry Volpiatto <[email-masked]> writes:

> IMHO we should fix this bug for most use cases with a compare function
> maybe not perfect in many points but ok for most basic usages.
> The function shown by Drew and I put in last patch as you said isn't
> sufficient and fail in many cases even on local filesystem:
>
> (defun bmkp-same-file-p (file1 file2)
>   "Return non-nil if FILE1 and FILE2 name the same file.
> If either name is not absolute, then it is expanded relative to
> `default-directory' for the test."
>   (and (equal (file-remote-p file1) (file-remote-p file2))
>        (string= (file-truename (expand-file-name file1))
>                 (file-truename (expand-file-name file2)))))
>
> (bmkp-same-file-p "~/Test" "/home/thierry/Test/") => nil

So it must be 

       (string= (directory-file-name (file-truename (expand-file-name file1)))
                (directory-file-name (file-truename (expand-file-name file2))))))

Best regards, Michael.