mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-14 09:39:42 +00:00
Suppress false positives in apropos-value
* lisp/apropos.el (apropos-value): Skip more apropos-internal variables (bug#48063). (apropos-value-internal): Skip the first value in the history values, which always contains the match.
This commit is contained in:
parent
f1adb6b77a
commit
eda4888e54
@ -809,34 +809,35 @@ Returns list of symbols and values found."
|
||||
(apropos-parse-pattern pattern t)
|
||||
(or do-all (setq do-all apropos-do-all))
|
||||
(setq apropos-accumulator ())
|
||||
(let (f v p)
|
||||
(mapatoms
|
||||
(lambda (symbol)
|
||||
(setq f nil v nil p nil)
|
||||
(or (memq symbol '(apropos-regexp
|
||||
apropos-pattern apropos-all-words-regexp
|
||||
apropos-words apropos-all-words
|
||||
do-all apropos-accumulator
|
||||
symbol f v p))
|
||||
(setq v (apropos-value-internal 'boundp symbol 'symbol-value)))
|
||||
(if do-all
|
||||
(setq f (apropos-value-internal 'fboundp symbol 'symbol-function)
|
||||
p (apropos-format-plist symbol "\n " t)))
|
||||
(if (apropos-false-hit-str v)
|
||||
(setq v nil))
|
||||
(if (apropos-false-hit-str f)
|
||||
(setq f nil))
|
||||
(if (apropos-false-hit-str p)
|
||||
(setq p nil))
|
||||
(if (or f v p)
|
||||
(setq apropos-accumulator (cons (list symbol
|
||||
(+ (apropos-score-str f)
|
||||
(apropos-score-str v)
|
||||
(apropos-score-str p))
|
||||
f v p)
|
||||
apropos-accumulator))))))
|
||||
(let ((apropos-multi-type do-all))
|
||||
(apropos-print nil "\n----------------\n")))
|
||||
(let (f v p)
|
||||
(mapatoms
|
||||
(lambda (symbol)
|
||||
(setq f nil v nil p nil)
|
||||
(or (memq symbol '(apropos-regexp
|
||||
apropos--current apropos-pattern-quoted pattern
|
||||
apropos-pattern apropos-all-words-regexp
|
||||
apropos-words apropos-all-words
|
||||
do-all apropos-accumulator
|
||||
symbol f v p))
|
||||
(setq v (apropos-value-internal 'boundp symbol 'symbol-value)))
|
||||
(if do-all
|
||||
(setq f (apropos-value-internal 'fboundp symbol 'symbol-function)
|
||||
p (apropos-format-plist symbol "\n " t)))
|
||||
(if (apropos-false-hit-str v)
|
||||
(setq v nil))
|
||||
(if (apropos-false-hit-str f)
|
||||
(setq f nil))
|
||||
(if (apropos-false-hit-str p)
|
||||
(setq p nil))
|
||||
(if (or f v p)
|
||||
(setq apropos-accumulator (cons (list symbol
|
||||
(+ (apropos-score-str f)
|
||||
(apropos-score-str v)
|
||||
(apropos-score-str p))
|
||||
f v p)
|
||||
apropos-accumulator))))))
|
||||
(let ((apropos-multi-type do-all))
|
||||
(apropos-print nil "\n----------------\n")))
|
||||
|
||||
;;;###autoload
|
||||
(defun apropos-local-value (pattern &optional buffer)
|
||||
@ -928,7 +929,13 @@ Returns list of symbols and documentation found."
|
||||
|
||||
(defun apropos-value-internal (predicate symbol function)
|
||||
(when (funcall predicate symbol)
|
||||
(setq symbol (prin1-to-string (funcall function symbol)))
|
||||
(setq symbol (prin1-to-string
|
||||
(if (memq symbol '(command-history minibuffer-history))
|
||||
;; The value we're looking for will always be in
|
||||
;; the first element of these two lists, so skip
|
||||
;; that value.
|
||||
(cdr (funcall function symbol))
|
||||
(funcall function symbol))))
|
||||
(when (string-match apropos-regexp symbol)
|
||||
(if apropos-match-face
|
||||
(put-text-property (match-beginning 0) (match-end 0)
|
||||
|
Loading…
Reference in New Issue
Block a user