From cf3c89423fabc2c5a7891a5b5465fa995e461218 Mon Sep 17 00:00:00 2001 From: Sebastian Tennant Date: Thu, 10 Mar 2022 08:36:04 +0000 Subject: [PATCH] Add new user option Man-prefer-synchronous-call * lisp/man.el (Man-getpage-in-background): Add new defcustom Man-prefer-synchronous-call and modify #'Man-getpage-in-background. Only call #'start-process when 'make-process satisfies #'fboundp AND Man-prefer-synchronous-call is bound to nil. (Bug#61552) Copyright-paperwork-exempt: yes --- doc/emacs/programs.texi | 6 ++++++ etc/NEWS | 7 +++++++ lisp/man.el | 11 ++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index d97bd56be21..c6c67047c43 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -1387,6 +1387,12 @@ this, change the value of the variable @code{Man-switches} to @kbd{M-p} to switch between man pages in different sections. The mode line shows how many manual pages are available. +@vindex Man-prefer-synchronous-call + By default, @kbd{M-x man} calls the @code{man} program +asynchronously. If you would prefer it if @kbd{M-x man} called the +@code{man} program synchronously, you may set variable +@code{Man-prefer-synchronous-calls} to a non-@code{nil} value. + @findex woman @cindex manual pages, on MS-DOS/MS-Windows An alternative way of reading manual pages is the @kbd{M-x woman} diff --git a/etc/NEWS b/etc/NEWS index 31fb22fc1e2..744eab41558 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -201,6 +201,13 @@ This command adds a docstring comment to the current defun. If a comment already exists, point is only moved to the comment. It is bound to 'C-c C-d' in 'go-ts-mode'. +** Man-mode + ++++ +*** New user option 'Man-prefer-synchronous-call'. +When this is non-nil, call the 'man' program synchronously rather than +asynchronously, which is the default behaviour. + * New Modes and Packages in Emacs 30.1 diff --git a/lisp/man.el b/lisp/man.el index 9f75c07c791..5e5c10aac36 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -97,6 +97,14 @@ :group 'external :group 'help) +(defcustom Man-prefer-synchronous-call nil + "Whether to call the Un*x 'man' program synchronously. +When this is non-nil, call the 'man' program synchronously +(rather than asynchronously, which is the default behaviour)." + :type 'boolean + :group 'man + :version 30.1) + (defcustom Man-filter-list nil "Manpage cleaning filter command phrases. This variable contains a list of the following form: @@ -1118,7 +1126,8 @@ Return the buffer in which the manpage will appear." "[cleaning...]") 'face 'mode-line-emphasis))) (Man-start-calling - (if (fboundp 'make-process) + (if (and (fboundp 'make-process) + (not Man-prefer-synchronous-call)) (let ((proc (start-process manual-program buffer (if (memq system-type '(cygwin windows-nt)) -- 2.39.5