From: Lars Ingebrigtsen Date: Fri, 29 Apr 2016 16:22:58 +0000 (+0200) Subject: Add a sanity check to apropos-documentation-internal X-Git-Tag: emacs-26.0.90~2108 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1a3a1f709d43836772bc0a84fa67694ff8123df5;p=emacs.git 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). --- diff --git a/lisp/apropos.el b/lisp/apropos.el index eb145bdc571..6009f30f7a8 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))