unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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



  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).