Subject: bug#16582: Bug: tramp shell command doesn't read stdin

From: Sylvain Chouleur <[email-masked]>
Date: Tue, 28 Jan 2014 23:40:06 +0100

Hi,

there is a regression introduced by this commit:

e43048325611953396186b569447a3754422ddc3
Author: Michael Albinus <[email-masked]>
Date:   Fri Dec 6 16:34:06 2013 +0100

    Bug#16045

    * progmodes/compile.el (compilation-start):
    * progmodes/grep.el (rgrep): Revert change of 2012-12-20 (r111276).

    * net/tramp-sh.el (tramp-sh-handle-start-file-process):
    Handle long command lines, lasting from "sh -c ...".  (Bug#16045)

The following syntax used to execute tramp shell command:
exec <<EOF /bin/bash
commands
EOF
prevents users to send inputs to bash using stdin.
For example, the following does not works anymore:

exec <<EOF /bin/bash
read line;
echo $line;
EOF

I don't understand what was this problem of long command lines (Bug#16045):
I've tried to execute shell comands with huge command lines and all were
successfull.
To keep the approach of splitting the lines, I would suggest something like
that:
exec /bin/bash -c "
commands
on
multiple lines
"

But this needs to backslash all shell specific characters, and I don't know
if there is really benefit compared to the original solution (before <<EOF)

What do you think?

-- 
Sylvain

PS: I've already posted on tramp-devel mailing list but it seems there is
no activity there.