Subject: bug#3957: split window for remote commands through eshell

From: Stefan Monnier <[email-masked]>
Date: Wed, 29 Jul 2009 11:42:20 -0400

> Basically, any time a remote command gets executed through eshell, if
> the frame is a single window it gets split into two windows.
> Essentially, this is because tramp does its magic through
> shell-command, which pops up a window if the output is too large to
> fit in the minibuffer.

I think the problem is not really in Tramp since Tramp just implements
shell-command according to its docstring; C-h v shell-command RET:

  [...]
  Execute string command in inferior shell; display output, if any.

I.e. the problem is that Eshell shouldn't use shell-command but
something else.
[ And probably shell-command should not be a file operation
  (i.e. shouldn't go through find-file-name-handler), instead it should
  use process-file or start-file-process. ]

> I'm currently trying to figure out how to prevent the root split, so
> things like new frames are blocked as well.

I think the right fix might be to make eshell-external-command (and
eshell-remote-command) use process-file or start-file-process.

Tho for async commands (that end in &), shell-command's behavior to open
a separate window/buffer for the command's output probably makes a lot
of sense.  So maybe this bug-report is only for remote commands that
don't end in &.

        Stefan