Subject: Re: bug#18133: Suppressing asynchronous command output

From: Reuben Thomas <[email-masked]>
Date: Wed, 28 Dec 2016 20:58:40 +0000

On 28 December 2016 at 16:01, Eli Zaretskii <[email-masked]> wrote:

> > From: Reuben Thomas <[email-masked]>
> > Date: Tue, 27 Dec 2016 22:21:11 +0000
> > Cc: Juri Linkov <[email-masked]>, martin rudalics <[email-masked]>,
> [email-masked]
> >
> >  > Why are we hard-coding a certain buffer name in a function that is
> >  > supposed to be more general, judging by its name and doc string?
> >  >
> >  > ​I found it hard-coded several times in other places, so I hard-coded
> it here. What do you suggest?
> >
> >  I don't see it hard-coded in any context such as this.
> >
> > ​I'm not quite sure what you mean by "in any context such as this". I
> see the string repeated in source code,
> > and never assigned to a variable name. This seems OK, since strings and
> symbols are pretty much
> > interchangeable when of this sort (e.g. not internationalised).​
>
> It appears:
>
>   . in ibuf-ext.el, as one of several strings users can select
>   . in tramp-adb.el as a buffer where the shell output should go
>   . in tramp.el, likewise
>   . in simple.el, likewise
>   . in comments in some other files
>
> By contrast, you were hard-coding it in a function that should provide
> optional behavior for buffers that are not necessarily related to
> shell output.  In that context, I think the user should be able to
> instruct Emacs about the buffers which should exhibit this behavior.
>

​As I said, the name is editable in M-x customize-variable.​

>  And another question: where's the user option to turn this feature on
> >  or off (including the default being off)?
> >
> > ​M-x​ customize-variable RET display-buffer-alist RET
> >
> > You can tick/untick the option for "*Async Shell Command*", and, when it
> is ticked, the regexp can be edited.
>
> But if I select that, what I get is that the buffer will not be
> displayed at all, right?  What will trigger its display when it
> becomes non-empty?  Sorry if I'm missing something obvious.
>

​​The buffer will be displayed by comint-make-newly-written-buffer-visible,
which I've added to the default value of comint-preoutput-filter-functions.
At present the buffer name is hard coded there, so this will only work for
"*Async Shell Command*".

So, to allow the user to be able to change the name, I suppose another user
option would need to be introduced.

However, that is beyond the scope of this bug, which is simply to change
the behaviour for asynchronous uses of shell-command.

-- 
http://rrt.sc3d.org