Function: cl-getf

cl-getf is an autoloaded and byte-compiled function defined in cl-extra.el.gz.

Signature

(cl-getf PROPLIST PROPNAME &optional DEFAULT)

Documentation

Search PROPLIST for property PROPNAME; return its value or DEFAULT.

PROPLIST is a list of the sort returned by symbol-plist.

View in manual

Aliases

getf (obsolete since 27.1)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-extra.el.gz
;;;###autoload
(defun cl-getf (plist tag &optional def)
  "Search PROPLIST for property PROPNAME; return its value or DEFAULT.
PROPLIST is a list of the sort returned by `symbol-plist'.
\n(fn PROPLIST PROPNAME &optional DEFAULT)"
  (declare (side-effect-free t)
           (gv-expander
            (lambda (do)
              (gv-letplace (getter setter) plist
                (macroexp-let2* nil ((k tag) (d def))
                  (funcall do `(cl-getf ,getter ,k ,d)
			   (lambda (v)
			     (macroexp-let2 nil val v
			       `(progn
				  ,(funcall setter
					    `(cl--set-getf ,getter ,k ,val))
				  ,val)))))))))
  (let ((val-tail (cdr (plist-member plist tag))))
    (if val-tail (car val-tail) def)))