From: Marcin Borkowski <mbork@mbork.pl>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org, juri@linkov.net
Subject: Re: async-shell-command and prefix argument
Date: Sun, 20 Jan 2019 21:26:41 +0100 [thread overview]
Message-ID: <878szfnkhq.fsf@mbork.pl> (raw)
In-Reply-To: <835zujbanu.fsf@gnu.org>
On 2019-01-20, at 16:39, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Marcin Borkowski <mbork@mbork.pl>
>> Cc: Juri Linkov <juri@linkov.net>, emacs-devel@gnu.org
>> Date: Sun, 20 Jan 2019 06:10:38 +0100
>>
>> I'm astonished, however, that you consider this a `weird use-case'.
>
> It is weird because you, in effect, give up any diagnostic output from
> the command, such as warnings or errors, up front. Since no one can
> reliably predict such diagnostics, I wonder how do you even know that
> those commands did what you intended them to do. It's like flying
> blind while also turning off all the instruments.
>
>> OTOH, some external commands are there only for their side effects -
>> think `rm' or `aunpack or `xdg-open'. (Notice that the last two often
>> /have/ output, only that you may be not interested in seeing it.)
>
> Commands invoked "for side effects" will not produce any output, so
> setting async-shell-command-display-buffer to nil will do exactly what
> (I think) you want: display nothing if there's no output, and display
> the diagnostics otherwise.
>
> OTOH, if such a command does display something, it means the author of
> the command thought it was important enough to show that, even though
> the command is "for side effects".
Well, you are right - in theory. Practice is different.
Here are some examples.
1. Opening a png file in Gimp with xdg-open
--8<---------------cut here---------------start------------->8---
$ xdg-open redacted.png
(gimp-2.10:29264): Gtk-WARNING **: 21:13:40.274: Unable to locate theme engine in module_path: "adwaita",
(gimp-2.10:29264): Gtk-WARNING **: 21:13:40.277: Unable to locate theme engine in module_path: "adwaita",
(file-png:29282): Gtk-WARNING **: 21:13:42.558: Unable to locate theme engine in module_path: "adwaita",
(file-png:29282): Gtk-WARNING **: 21:13:42.562: Unable to locate theme engine in module_path: "adwaita",
--8<---------------cut here---------------end--------------->8---
I know it worked because I can see a Gimp window/frame open.
2. Running (pdf)latex on a known and tested file (so no need for
diagnostics), only to produce the pdf.
I know it worked because I can see (and view) the pdf. (Besides, I know
the file compiles correctly anyway, I just happened to delete the pdf
and I want to recreate it.)
3. Unpacking an archive with (more or less) known contents.
--8<---------------cut here---------------start------------->8---
$ aunpack zzz.zip
Archive: zzz.zip
extracting: Unpack-6002/aaa
extracting: Unpack-6002/bbb
extracting: Unpack-6002/ccc
zzz.zip: extracted to `zzz' (multiple files in root)
--8<---------------cut here---------------end--------------->8---
I know it worked because I press `g' in Dired and I can see the results
of the unpacking.
4. Viewing a pdf without the synctex file in evince.
--8<---------------cut here---------------start------------->8---
$ evince mgr.pdf
! SyncTeX Error : No file?
--8<---------------cut here---------------end--------------->8---
>> Does it make sense?
>
> Not really, sorry.
Is it better now?
It is all about flexibility. The author may have thought that the
output is important. As a user, knowing my situation, I know that it is
not important /for me/. (And I take the risk of a possible but unlikely
situation of something going wrong and me not noticing, like having
a full disk.) I could say ">/dev/null 2>&1" to achieve what I want.
It's just that C-u is much more convenient.
Best,
--
Marcin Borkowski
http://mbork.pl
next prev parent reply other threads:[~2019-01-20 20:26 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-14 20:49 async-shell-command and prefix argument Marcin Borkowski
2019-01-15 17:32 ` Eli Zaretskii
2019-01-16 8:26 ` Marcin Borkowski
2019-01-19 21:19 ` Juri Linkov
2019-01-20 3:40 ` Eli Zaretskii
2019-01-20 5:10 ` Marcin Borkowski
2019-01-20 15:39 ` Eli Zaretskii
2019-01-20 20:26 ` Marcin Borkowski [this message]
2019-01-21 15:54 ` Eli Zaretskii
2019-01-24 17:32 ` Marcin Borkowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878szfnkhq.fsf@mbork.pl \
--to=mbork@mbork.pl \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=juri@linkov.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).