From b6a1ce0b31ff2dc163a614b75226130756dddf4a Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 18 May 2003 02:31:19 +0000 Subject: [PATCH] (macro-declaration-function): Avoid `dolist' and `cadr'. --- lisp/subr.el | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lisp/subr.el b/lisp/subr.el index 864af300e3e..54e1d04df22 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -43,13 +43,17 @@ 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." - (dolist (d (cdr decl)) - (cond ((and (consp d) (eq (car d) 'indent)) - (put macro 'lisp-indent-function (cadr d))) - ((and (consp d) (eq (car d) 'debug)) - (put macro 'edebug-form-spec (cadr d))) - (t - (message "Unknown declaration %s" d))))) + ;; 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)) + (cond ((and (consp d) (eq (car d) 'indent)) + (put macro 'lisp-indent-function (car (cdr d)))) + ((and (consp d) (eq (car d) 'debug)) + (put macro 'edebug-form-spec (car (cdr d)))) + (t + (message "Unknown declaration %s" d)))))) (setq macro-declaration-function 'macro-declaration-function) -- 2.39.2