Subject: Re: bug#16045: 24.3.50; rgrep can't work

From: Michael Albinus <[email-masked]>
Date: Thu, 05 Dec 2013 20:58:58 +0100

Eli Zaretskii <[email-masked]> writes:

>> From: Michael Albinus <[email-masked]>
>> Cc: Eli Zaretskii <[email-masked]>, zijianyue <[email-masked]>,
>> [email-masked]
>> Date: Thu, 05 Dec 2013 16:10:26 +0100
>> 
>> Hard for Tramp. It gets a long string as argument of
>> `start-file-process-shell-command', which looks like the example in
>> <http://thread.gmane.org/gmane.emacs.tramp/8233/focus=8244>. How shall
>> Tramp parse it?
>
> Why should it parse it?  Isn't \n\ removed on the remote end before
> the shell there interprets it?

I'm not sure, whether it works under any circumstance. For example:

$ cat <<EO\
> F
> xxx\
> yyy
> EO\
> F
> EOF
xxxyyy
EOF
$ 

The heredoc does not understand the first EOF, when written as

EO\
F

Granted, that is malicious example. But it shows we need some knowledge
about the string, and where to add \\n.

>> Where does it know from, how long a command line in the remote shell
>> could be?
>
> How do you know that in grep.el?

grep.el doesn't know it either. But it knows more about the arguments,
and where to add that line break.

Best regards, Michael.