Subject: Re: bug#71081: 30.0.50; shell-command-on-region outputs boilerplate text on Windows

From: Ihor Radchenko <[email-masked]>
Date: Thu, 23 May 2024 12:06:25 +0000

Eli Zaretskii <[email-masked]> writes:

>> > The easiest way of solving this conundrum is to create a temporary
>> > batch file, insert all the commands into it, with the first line being
>> >
>> >   @echo off
>> >
>> > and then submit the name of that batch file to the Windows shell as
>> > the sole command-line argument after shell-command-switch.  So my
>> > recommendation is to do just that, on Windows.
>> 
>> May it be something you also want to do for `shell-command-on-region'?
>
> No, because in general the region is some text we want to give a
> program as input.  The usual "program" in these cases is not the
> shell, but some program that gets the text and processes it in some
> way.
>
> So in most "usual" uses of shell-command-on-region, going through a
> batch file is an unnecessary overhead.

Clear. I am not a big user of shell-command-on-region.

Then, what about something like

(shell-command-to-string "echo foo\necho bar")

On Linux, it yields
"foo
bar"

On Windows, it yields

"foo"

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>