]> git.eshelyaron.com Git - emacs.git/commitdiff
Make the Man completion code work better if man -k fails
authorNoam Postavsky <npostavs@users.sourceforge.net>
Fri, 25 Sep 2020 11:39:24 +0000 (13:39 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Fri, 25 Sep 2020 11:39:24 +0000 (13:39 +0200)
* 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).

lisp/man.el

index 5ee60cae9f3d60dd05d646a6c3b07e2ea3999c1c..bd55d7eff060b745f7f1e3fb32c181f16eadc1bd 100644 (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