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

From: Juanma Barranquero <[email-masked]>
Date: Fri, 13 Jan 2012 13:01:49 +0100

On Fri, Jan 13, 2012 at 11:31, Eli Zaretskii <[email-masked]> wrote:

> Bottom line, I think you need:
>
>  . make both file names absolute by calling expand-file-name on each
>
>  . resolve links by calling file-truename on each (this will handle
>    the 8+3 alias issue, as well as, AFAIK, the issue with links)
>
>  . compare case-insensitively on MS-Windows and MS-DOS

As this seems like a common occurrence, how comes that we don't have

(defun file-name-compare (name1 name2 &optional dir)
  "..."
  (let ((n1 (file-truename (expand-file-name name1 dir)))
        (n2 (file-truename (expand-file-name name2 dir))))
    (when (memq system-type '(ms-dos windows-nt))
      (setq n1 (downcase n1)
            n2 (downcase n2)))
    (string= n1 n2)))

?

    Juanma