Subject: bug#8089: closed (Re: bug#8089: Eshell remote files fix (patch))

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 22 Feb 2011 05:55:02 +0000

Your bug report

#8089: Eshell remote files fix (patch)

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
8089: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8089
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#8089: Eshell remote files fix (patch)
From: Michael Albinus <[email-masked]>
To: Seppo Sade <[email-masked]>
Cc: [email-masked]
Date: Tue, 22 Feb 2011 06:54:45 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Seppo Sade <[email-masked]> writes:

> The following currently fails in Eshell:
>
> $ sudo bzgrep # Or any shell script in PATH
> /bin/sh: /sudo:root@localhost:/usr/bin/bzgrep: No such file or
> directory
>
> This is apparently so because eshell/sudo translates that to a Tramp
> remote location, but eshell-external-command fails to handle it as a
> remote command. It instead passes the default-directory containing
> Tramp syntax directly to the command (shell script), which obviously
> fails as it doesn't understand Tramp syntax. The patch below fixes
> this issue.

Thanks for the report. I've applied your patch to the trunk (aka Emacs 24).

> (Was there any specific reason for earlier only considering "ftp"
> being remote, instead of all Tramp methods?)

Historical reasons. Originally, eshell used ange-ftp for remote
connections.

Best regards, Michael.

Subject: Eshell remote files fix (patch)
From: Seppo Sade <[email-masked]>
To: [email-masked]
Date: Sun, 20 Feb 2011 22:02:45 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

The following currently fails in Eshell:

$ sudo bzgrep # Or any shell script in PATH
/bin/sh: /sudo:root@localhost:/usr/bin/bzgrep: No such file or directory

This is apparently so because eshell/sudo translates that to a Tramp remote
location, but eshell-external-command fails to handle it as a remote
command. It instead passes the default-directory containing Tramp syntax
directly to the command (shell script), which obviously fails as it doesn't
understand Tramp syntax. The patch below fixes this issue. (Was there any
specific reason for earlier only considering "ftp" being remote, instead of
all Tramp methods?)

--- esh-ext.el.orig     2011-02-18 20:57:50.000000000 +0200
+++ esh-ext.el  2011-02-18 20:58:12.000000000 +0200
@@ -203,7 +203,7 @@
 (defun eshell-external-command (command args)
   "Insert output from an external COMMAND, using ARGS."
   (setq args (eshell-stringify-list (eshell-flatten-list args)))
-  (if (string-equal (file-remote-p default-directory 'method) "ftp")
+  (if (file-remote-p default-directory)
       (eshell-remote-command command args))
   (let ((interp (eshell-find-interpreter command)))
     (assert interp)