Michael Albinus writes: > Thierry Volpiatto writes: > >> What about this? >> >> (defun file-name-equal-p (name1 name2 &optional dir) >> (let* ((n1 (file-truename (expand-file-name name1 dir))) >> (n2 (file-truename (expand-file-name name2 dir))) >> (rhost1 (file-remote-p n1 'host)) >> (rhost2 (file-remote-p n2 'host)) >> (lname1 (file-remote-p n1 'localname)) >> (lname2 (file-remote-p n2 'localname)) >> (rem-n1 (if rhost1 >> (list (cons rhost1 lname1)) >> (list (cons (system-name) n1)))) >> (rem-n2 (if rhost2 >> (list (cons rhost2 lname2)) >> (list (cons (system-name) n2))))) >> (loop for (x1 . y1) in rem-n1 >> for (x2 . y2) in rem-n2 >> thereis (and (equal x1 x2) >> (equal y1 y2))))) > > Nope. User name and method also matter. > > "/ftp:host:/file" <> "/ssh:@host:/file" > > "/ftp:user1@host:/file" <> "/ftp:user1@host:/file" I see. > You shouldn't mess with remote files, really :-) Indeed yes! > That's what file name handlers are good for. > > Best regards, Michael. I post here the last version of the patch I wrote today, waiting something better to compare files. it works and fix this bug in most use cases. -- Thierry Get my Gnupg key: gpg --keyserver pgp.mit.edu --recv-keys 59F29997