From b50a5ef015280a585330d4fcfc1265d65ce1dd88 Mon Sep 17 00:00:00 2001 From: Spencer Baugh Date: Tue, 6 Aug 2024 12:39:37 -0400 Subject: [PATCH] Stop subprocesses from using inherited or default PAGER 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. A user 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) --- lisp/startup.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lisp/startup.el b/lisp/startup.el index f18795ae6ac..738eec772ec 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -854,6 +854,12 @@ normal-top-level ;; 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 -- 2.39.3