Function: apropos-symbols-internal

apropos-symbols-internal is a byte-compiled function defined in apropos.el.gz.

Signature

(apropos-symbols-internal SYMBOLS KEYS &optional TEXT)

Source Code

;; Defined in /usr/src/emacs/lisp/apropos.el.gz
(defun apropos-symbols-internal (symbols keys &optional text)
  ;; Filter out entries that are marked as apropos-inhibit.
  (let ((all nil))
    (dolist (symbol symbols)
      (unless (get symbol 'apropos-inhibit)
	(push symbol all)))
    (setq symbols all))
  (let ((apropos-accumulator
	 (mapcar
	  (lambda (symbol)
	    (let (doc properties)
	      (list
	       symbol
	       (apropos-score-symbol symbol)
	       (when (fboundp symbol)
		 (if (setq doc (condition-case nil
				   (documentation symbol t)
				 (void-function
				  "(alias for undefined function)")
				 (error
				  "(can't retrieve function documentation)")))
		     (substring doc 0 (string-search "\n" doc))
		   "(not documented)"))
	       (when (boundp symbol)
		 (apropos-documentation-property
		  symbol 'variable-documentation t))
	       (when (setq properties (symbol-plist symbol))
		 (setq doc (list (car properties)))
		 (while (setq properties (cdr (cdr properties)))
		   (setq doc (cons (car properties) doc)))
		 (mapconcat (lambda (p) (format "%s" p)) (nreverse doc) " "))
	       (when (get symbol 'widget-type)
		 (apropos-documentation-property
		  symbol 'widget-documentation t))
	       (when (facep symbol)
		 (let ((alias (get symbol 'face-alias)))
		   (if alias
		       (if (facep alias)
			   (format-message
			    "%slias for the face `%s'."
			    (if (get symbol 'obsolete-face) "Obsolete a" "A")
			    alias)
			 ;; Never happens in practice because fails
			 ;; (facep symbol) test.
			 "(alias for undefined face)")
		     (apropos-documentation-property
		      symbol 'face-documentation t))))
	       (when (get symbol 'custom-group)
		 (apropos-documentation-property
		  symbol 'group-documentation t)))))
	  symbols)))
    (apropos-print keys nil text)))