At startup, set PAGER to "cat" so that any inherited or
default value of PAGER does not affect subprocesses of
Emacs. Pagers generally won't work when a subprocess
runs under Emacs.
Users can use 'comint-pager' (or other customizations)
to tell subprocesses to use a different specific pager.
* lisp/startup.el (normal-top-level): Set PAGER to 'cat',
if 'cat' is available. (Bug#72426)
(cherry picked from commit
7811a7d38bb7cb303dc66efa02eb95e75a03f39d)
;; We are careful to do it late (after term-setup-hook), although the
;; new multi-tty code does not use $TERM any more there anyway.
(setenv "TERM" "dumb")
+ ;; Similarly, a subprocess should not try to invoke a pager, as most
+ ;; pagers will fail in a dumb terminal. Many programs default to
+ ;; using "less" when PAGER is unset, so set PAGER to "cat"; using cat
+ ;; as a pager is equivalent to not using a pager at all.
+ (when (executable-find "cat")
+ (setenv "PAGER" "cat"))
;; Remove DISPLAY from the process-environment as well. This allows
;; `callproc.c' to give it a useful adaptive default which is either
;; the value of the `display' frame-parameter or the DISPLAY value