Function: custom--get-def

custom--get-def is a byte-compiled function defined in cus-dep.el.gz.

Signature

(custom--get-def EXPR)

Source Code

;; Defined in /usr/src/emacs/lisp/cus-dep.el.gz
(defun custom--get-def (expr)
  (if (not (memq (car-safe expr)
                 '( define-minor-mode define-globalized-minor-mode)))
      expr
    ;; For define-minor-mode, we don't want to evaluate the whole
    ;; expression, because it tends to define functions which aren't
    ;; usable (because they call other functions that were skipped).
    ;; Concretely it gave us an error
    ;; "void-function bug-reference--run-auto-setup"
    ;; when subsequently loading `cus-load.el'.
    (let ((es (list (macroexpand-all expr)))
          defs)
      (while es
        (let ((e (pop es)))
          (pcase e
            (`(progn . ,exps) (setq es (append exps es)))
            (`(custom-declare-variable . ,_) (push e defs)))))
      (macroexp-progn (nreverse defs)))))