Function: macro-declaration-function
macro-declaration-function is a byte-compiled function defined in
byte-run.el.gz.
This function is obsolete since 24.3; use macro-declarations-alist
instead.
Signature
(macro-declaration-function MACRO DECL)
Documentation
Process a declaration found in a macro definition.
This is set as the value of the variable macro-declaration-function(var)/macro-declaration-function(fun).
MACRO is the name of the macro being defined.
DECL is a list (declare ...) containing the declarations.
The return value of this function is not used.
Probably introduced at or before Emacs version 24.3.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-run.el.gz
(defalias 'macro-declaration-function
#'(lambda (macro decl)
"Process a declaration found in a macro definition.
This is set as the value of the variable `macro-declaration-function'.
MACRO is the name of the macro being defined.
DECL is a list `(declare ...)' containing the declarations.
The return value of this function is not used."
;; We can't use `dolist' or `cadr' yet for bootstrapping reasons.
(let (d)
;; Ignore the first element of `decl' (it's always `declare').
(while (setq decl (cdr decl))
(setq d (car decl))
(if (and (consp d)
(listp (cdr d))
(null (cdr (cdr d))))
(cond ((eq (car d) 'indent)
(put macro 'lisp-indent-function (car (cdr d))))
((eq (car d) 'debug)
(put macro 'edebug-form-spec (car (cdr d))))
((eq (car d) 'doc-string)
(put macro 'doc-string-elt (car (cdr d))))
(t
(message "Unknown declaration %s" d)))
(message "Invalid declaration %s" d))))))