Function: advice--normalize
advice--normalize is a byte-compiled function defined in
nadvice.el.gz.
Signature
(advice--normalize SYMBOL DEF)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/nadvice.el.gz
(defun advice--normalize (symbol def)
(cond
((special-form-p def)
;; Not worth the trouble trying to handle this, I think.
(error "Advice impossible: %S is a special form" symbol))
((and (symbolp def) (macrop def))
(let ((newval `(macro . ,(lambda (&rest r) (macroexpand `(,def . ,r))))))
(put symbol 'advice--saved-rewrite (cons def (cdr newval)))
newval))
;; `f' might be a pure (hence read-only) cons!
((and (eq 'macro (car-safe def))
(not (ignore-errors (setcdr def (cdr def)) t)))
(cons 'macro (cdr def)))
(t def)))