On Sat, Aug 3, 2024, 11:39 AM Eli Zaretskii <eliz@gnu.org> wrote:
> From: Spencer Baugh <sbaugh@janestreet.com>
> Date: Sat, 3 Aug 2024 06:47:10 -0400
> Cc: 72426@debbugs.gnu.org
>
> On Sat, Aug 3, 2024, 1:48 AM Eli Zaretskii <eliz@gnu.org> wrote:
>
>  > From: Spencer Baugh <sbaugh@janestreet.com>
>  > Date: Fri, 02 Aug 2024 14:35:25 -0400
>  >
>  >
>  > 1. PAGER=less emacs -Q
>  > 2. (setq comint-pager "cat")
>  > 3. (async-shell-command "echo $PAGER")
>  > 4. Observe "less" rather than "cat".
>  >
>  > I intended async-shell-command to also be affected when I added
>  > comint-pager; a patch to fix this will follow.
>
>  Thanks, I don't think this is right: comint stuff should not affect
>  lower-level primitives, it should only affect comint and its callers.
>
> comint-terminfo-terminal affects async-shell-command, why not this?

Ugh!  A mistake, IMNSHO.  But that ship sailed a long time ago, so we
cannot fix the mistake.  We can avoid enlarging the mistake, though.

> If the fact that the variable is in comint is the problem, I can rename it and move it elsewhere.

I don't think functions that are almost primitives should pay
attention to application-level features such as this one.

If we're not going to make the variable apply to all usage, I think it should just be deleted before 30 is released.  There's no point to it in that case, because it's still necessary to add (setenv "PAGER" "cat") to one's configuration.

Alternatively, the default of comint-pager should be set to "cat".

But I see no value in a variable like this if it neither applies to all (or at least most) users, nor provides better default behavior.


>  Lisp programs that use async-shell-command can arrange for
>  process-environment to have PAGER=SOMETHING as they see fit.
>
> My intention is primarily to affect interactive usage of async-shell-command.

But comint-term-environment also affects "M-x compile".

Yes, I would like comint-pager to also affect that.