emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 1a3a1f7: Add a sanity check to apropos-documentatio


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 1a3a1f7: Add a sanity check to apropos-documentation-internal
Date: Fri, 29 Apr 2016 16:23:32 +0000

branch: master
commit 1a3a1f709d43836772bc0a84fa67694ff8123df5
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    Add a sanity check to apropos-documentation-internal
    
    * lisp/apropos.el (apropos-documentation-internal): Add a
    sanity check to be less fragile in the presence of invalid
    data (bug#16725).
---
 lisp/apropos.el |   30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/lisp/apropos.el b/lisp/apropos.el
index eb145bd..6009f30 100644
--- a/lisp/apropos.el
+++ b/lisp/apropos.el
@@ -867,19 +867,23 @@ Returns list of symbols and documentation found."
              symbol)))))
 
 (defun apropos-documentation-internal (doc)
-  (if (consp doc)
-      (apropos-documentation-check-elc-file (car doc))
-    (if (and doc
-            (string-match apropos-all-words-regexp doc)
-            (apropos-true-hit-doc doc))
-       (when apropos-match-face
-         (setq doc (substitute-command-keys (copy-sequence doc)))
-         (if (or (string-match apropos-pattern-quoted doc)
-                 (string-match apropos-all-words-regexp doc))
-             (put-text-property (match-beginning 0)
-                                (match-end 0)
-                                'face apropos-match-face doc))
-         doc))))
+  (cond
+   ((consp doc)
+    (apropos-documentation-check-elc-file (car doc)))
+   ((and doc
+         ;; Sanity check in case bad data has snuck into the
+         ;; documentation slot.
+         (stringp doc)
+         (string-match apropos-all-words-regexp doc)
+         (apropos-true-hit-doc doc))
+    (when apropos-match-face
+      (setq doc (substitute-command-keys (copy-sequence doc)))
+      (if (or (string-match apropos-pattern-quoted doc)
+              (string-match apropos-all-words-regexp doc))
+          (put-text-property (match-beginning 0)
+                             (match-end 0)
+                             'face apropos-match-face doc))
+      doc))))
 
 (defun apropos-format-plist (pl sep &optional compare)
   (setq pl (symbol-plist pl))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]