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
This commit is contained in:
Sebastian Tennant 2022-03-10 08:36:04 +00:00 committed by Eli Zaretskii
parent 68f49083af
commit cf3c89423f
3 changed files with 23 additions and 1 deletions

View file

@ -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}

View file

@ -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

View file

@ -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))