summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2019-08-08 16:17:51 +0300
committerEli Zaretskii <eliz@gnu.org>2019-08-08 16:17:51 +0300
commit691790b8ea5192395a2eeac0f89a2f41d74f2ddb (patch)
tree9ca29974e691807d3c040644fa8242ad62c4edc5
parentb83f83ccd47997b7fd581026d4e1b124fa4fefc2 (diff)
downloademacs-691790b8ea5192395a2eeac0f89a2f41d74f2ddb.tar.gz
Avoid Groff hanging on MS-Windows when invoked by "M-x man"
* lisp/man.el (Man-build-man-command): On MS-Windows, redirect stdin of 'man' to the null device, to make sure Groff exits immediately after formatting the man page.
-rw-r--r--lisp/man.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/man.el b/lisp/man.el
index 409fadb66b8..731d480cbee 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -624,7 +624,13 @@ This is necessary if one wants to dump man.el with Emacs."
;; so we don't need `2>' even with DOS shells
;; which do support stderr redirection.
((not (fboundp 'make-process)) " %s")
- ((concat " %s 2>" null-device)))))
+ ((concat " %s 2>" null-device
+ ;; Some MS-Windows ports of Groff
+ ;; try to read stdin after exhausting
+ ;; the command-line arguments; make
+ ;; them exit if/when they do.
+ (if (eq system-type 'windows-nt)
+ (concat " <" null-device)))))))
(flist Man-filter-list))
(while (and flist (car flist))
(let ((pcom (car (car flist)))