;;; apropos.el --- apropos commands for users and programmers
-;; Copyright (C) 1989, 1994-1995, 2001-2015 Free Software Foundation,
+;; Copyright (C) 1989, 1994-1995, 2001-2016 Free Software Foundation,
;; Inc.
;; Author: Joe Wells <jbw@bigbird.bu.edu>
;;;###autoload
(defun apropos-variable (pattern &optional do-not-all)
"Show variables that match PATTERN.
-When DO-NOT-ALL is non-nil, show user options only, i.e. behave
-like `apropos-user-option'."
+With the optional argument DO-NOT-ALL non-nil (or when called
+interactively with the prefix \\[universal-argument]), show user
+options only, i.e. behave like `apropos-user-option'."
(interactive (list (apropos-read-pattern
(if current-prefix-arg "user option" "variable"))
current-prefix-arg))
;; (autoload (push (cdr x) autoloads))
(`require (push (cdr x) requires))
(`provide (push (cdr x) provides))
+ (`t nil) ; Skip "was an autoload" entries.
+ ;; FIXME: Print information about each individual method: both
+ ;; its docstring and specializers (bug#21422).
+ (`cl-defmethod (push (cadr x) provides))
(_ (push (or (cdr-safe x) x) symbols))))
(let ((apropos-pattern "")) ;Dummy binding for apropos-symbols-internal.
(apropos-symbols-internal
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 sneaked 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))
The return value is the list that was in `apropos-accumulator', sorted
alphabetically by symbol name; but this function also sets
`apropos-accumulator' to nil before returning.
-
-If SPACING is non-nil, it should be a string; separate items with that string.
-If non-nil, TEXT is a string that will be printed as a heading."
+If DO-KEYS is non-nil, output the key bindings. If NOSUBST is
+nil, substitute \"ASCII quotes\" (i.e., grace accent and
+apostrophe) with curly quotes), and if non-nil, leave them alone.
+If SPACING is non-nil, it should be a string; separate items with
+that string. If non-nil, TEXT is a string that will be printed
+as a heading."
(if (null apropos-accumulator)
(message "No apropos matches for `%s'" apropos-pattern)
(setq apropos-accumulator