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

From: Reuben Thomas <[email-masked]>
Date: Tue, 27 Dec 2016 22:21:11 +0000

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

> > From: Reuben Thomas <[email-masked]>
> > Date: Tue, 27 Dec 2016 09:01:32 +0000
> > Cc: Juri Linkov <[email-masked]>, martin rudalics <[email-masked]>,
> [email-masked]
> >
> >  > +(defun comint-make-newly-written-buffer-visible (string process)
> >  > + "Make the output buffer visible when output is added to an empty
> buffer.
> >  > +Useful in `comint-preoutput-filter-functions'."
> >  > + (let ((buffer (process-buffer process)))
> >  > + (when (and (= 0 (buffer-size buffer))
> >  > + (string-match-p "\\*Async Shell Command\\*"
> >  > + (buffer-name buffer)))
> >  > + (display-buffer (process-buffer process))))
> >  > + string)
> >
> >  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).​

> I think the regexp against which buffer names are matched in
> comint-make-newly-written-buffer-visible should be customizable, with
> "*Async Shell Command*" being (in) the default value.
>

This is already the case.​

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.

-- 
http://rrt.sc3d.org