Make the Man completion code work better if man -k fails

* lisp/man.el (Man-completion-table): Check the return code for
"man -k" and assume it failed if there's a non-zero exit code
(bug#16722).
This commit is contained in:
Noam Postavsky 2020-09-25 13:39:24 +02:00 committed by Lars Ingebrigtsen
parent 830e876d94
commit 9fd9c9c2c0

View file

@ -927,15 +927,18 @@ foo(sec)[, bar(sec) [, ...]] [other stuff] - description"
;; run differently in Man-getpage-in-background, an error
;; here may not necessarily mean that we'll also get an
;; error later.
(ignore-errors
(call-process manual-program nil '(t nil) nil
"-k" (concat (when (or Man-man-k-use-anchor
(string-equal prefix ""))
"^")
prefix))))
(setq table (Man-parse-man-k)))
(when (eq 0
(ignore-errors
(call-process
manual-program nil '(t nil) nil
"-k" (concat (when (or Man-man-k-use-anchor
(string-equal prefix ""))
"^")
prefix))))
(setq table (Man-parse-man-k)))))
;; Cache the table for later reuse.
(setq Man-completion-cache (cons prefix table)))
(when table
(setq Man-completion-cache (cons prefix table))))
;; The table may contain false positives since the match is made
;; by "man -k" not just on the manpage's name.
(if section