From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Albinus Newsgroups: gmane.emacs.bugs Subject: bug#10489: 24.0.92; dired-do-copy may create infinite directory hierarchy Date: Sun, 15 Jan 2012 13:50:47 +0100 Message-ID: <87vcodm8ns.fsf@gmx.de> References: <87mx9su32g.fsf@web.de> <87sjjkfvwt.fsf@gmail.com> <8362ggkquq.fsf@gnu.org> <87lipcrlga.fsf@gmail.com> <87fwfkc4pn.fsf@gmx.de> <87fwfjsw8t.fsf@gmail.com> <87aa5rdazl.fsf@gmx.de> <87d3anogf5.fsf@gmail.com> <011AEED9E81C4DEFA6B1E03B0F57F28F@us.oracle.com> <878vlbljnc.fsf@gmx.de> <8739bj8mu1.fsf@gmail.com> <87fwfjo24c.fsf@gmx.de> <87pqen76p4.fsf@gmail.com> <83fwfik92e.fsf@gnu.org> <87mx9q1sz7.fsf@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1326631884 24533 80.91.229.12 (15 Jan 2012 12:51:24 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 15 Jan 2012 12:51:24 +0000 (UTC) Cc: 10489@debbugs.gnu.org To: Thierry Volpiatto Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jan 15 13:51:18 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RmPYL-0004D3-Pa for geb-bug-gnu-emacs@m.gmane.org; Sun, 15 Jan 2012 13:51:17 +0100 Original-Received: from localhost ([::1]:49272 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RmPYL-0000kz-9P for geb-bug-gnu-emacs@m.gmane.org; Sun, 15 Jan 2012 07:51:17 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:51758) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RmPYI-0000kC-TE for bug-gnu-emacs@gnu.org; Sun, 15 Jan 2012 07:51:15 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RmPYH-0000ec-Sa for bug-gnu-emacs@gnu.org; Sun, 15 Jan 2012 07:51:14 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:35070) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RmPYH-0000eY-Pn for bug-gnu-emacs@gnu.org; Sun, 15 Jan 2012 07:51:13 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1RmPZ3-0004lV-LK for bug-gnu-emacs@gnu.org; Sun, 15 Jan 2012 07:52:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Michael Albinus Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 15 Jan 2012 12:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 10489 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 10489-submit@debbugs.gnu.org id=B10489.132663190418290 (code B ref 10489); Sun, 15 Jan 2012 12:52:01 +0000 Original-Received: (at 10489) by debbugs.gnu.org; 15 Jan 2012 12:51:44 +0000 Original-Received: from localhost ([127.0.0.1]:57976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RmPYm-0004kw-1r for submit@debbugs.gnu.org; Sun, 15 Jan 2012 07:51:44 -0500 Original-Received: from mailout-de.gmx.net ([213.165.64.23]:39209) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1RmPYk-0004kp-Bf for 10489@debbugs.gnu.org; Sun, 15 Jan 2012 07:51:43 -0500 Original-Received: (qmail invoked by alias); 15 Jan 2012 12:50:52 -0000 Original-Received: from p57BB9257.dip0.t-ipconnect.de (EHLO detlef.gmx.de) [87.187.146.87] by mail.gmx.net (mp019) with SMTP; 15 Jan 2012 13:50:52 +0100 X-Authenticated: #3708877 X-Provags-ID: V01U2FsdGVkX1/cv38Be3jcz7Pwh82xtswHGkPA1ya+ilo7Q8Le4X IQrJ6OW1IlsByA In-Reply-To: <87mx9q1sz7.fsf@gmail.com> (Thierry Volpiatto's message of "Sat, 14 Jan 2012 11:25:16 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) X-Y-GMX-Trusted: 0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:55764 Archived-At: Thierry Volpiatto writes: > The last patch use this instead, which avoid duplication of code and is > more readable. > > (defun files-copyable-p (from to) > "Verify if file FROM is not the same than TO on this system." > (let* ((fromname (file-name-as-directory (file-truename from))) > (destname (file-name-as-directory (file-truename to))) > (rem-fromname (and (equal "sudo" (file-remote-p fromname 'method)) > (string-match (system-name) > (file-remote-p fromname 'host)) > (file-remote-p fromname 'localname))) > (rem-newname (and (equal "sudo" (file-remote-p destname 'method)) > (string-match (system-name) (file-remote-p destname 'host)) > (file-remote-p destname 'localname)))) > (not (equal (or rem-fromname fromname) > (or rem-newname destname))))) Again, Thierry: it is the wrong approach, to implement such logic in files.el (or another package not related to remote files). You do not know all details of the packages handling it. In this example, you have handled "/sudo:", but you haven't handled "/su:". And other missing details. And you have called `file-truename' before comparing, whether the "remoteness" of the files are equal. This is a performance issue, because `file-truename' will always do expansive remote operations, even if `from' and `to' are located on different hosts, and there is no reason to find out their respective true names. You are invited to implement `tramp-handle-file-eual-p', once `file-equal-p' is added for Emacs 24.2. For the time being (Emacs 24.1), it is sufficient to compare the result of `file-remote-p' as Drew has shown in the example. Best regards, Michael.