# HG changeset patch # User Gerd Moellmann # Date 968169298 0 # Node ID 0b8165a82e3435c81cca94619d32bf221176eaf2 # Parent 503d71e95620159d6db77f7ad8df50181319190c (set-face-attribute, face-spec-reset-face) (face-spec-set): Avoid consing by removing calls to `apply'. diff -r 503d71e95620 -r 0b8165a82e34 lisp/faces.el --- a/lisp/faces.el Tue Sep 05 15:54:38 2000 +0000 +++ b/lisp/faces.el Tue Sep 05 15:54:58 2000 +0000 @@ -550,9 +550,16 @@ (cond ((null frame) ;; Change face on all frames. (dolist (frame (frame-list)) - (apply #'set-face-attribute face frame args)) + (let ((list args)) + (while list + (internal-set-lisp-face-attribute face (car list) + (cadr list) frame) + (setq list (cdr (cdr list)))))) ;; Record that as a default for new frames. - (apply #'set-face-attribute face t args)) + (while args + (internal-set-lisp-face-attribute face (car args) + (cadr args) t) + (setq args (cdr (cdr args))))) (t (while args (internal-set-lisp-face-attribute face (car args) @@ -1168,21 +1175,19 @@ (defun face-spec-reset-face (face &optional frame) "Reset all attributes of FACE on FRAME to unspecified." - (let ((attrs face-attribute-name-alist) - params) + (let ((attrs face-attribute-name-alist)) (while attrs (let ((attr-and-name (car attrs))) - (setq params (cons (car attr-and-name) (cons 'unspecified params)))) - (setq attrs (cdr attrs))) - (apply #'set-face-attribute face frame params))) + (set-face-attribute face frame (car attr-and-name) 'unspecified)) + (setq attrs (cdr attrs))))) (defun face-spec-set (face spec &optional frame) "Set FACE's attributes according to the first matching entry in SPEC. FRAME is the frame whose frame-local face is set. FRAME nil means do it on all frames. See `defface' for information about SPEC." - (let ((attrs (face-spec-choose spec frame)) - params) + (let ((attrs (face-spec-choose spec frame))) + (face-spec-reset-face face frame) (while attrs (let ((attribute (car attrs)) (value (car (cdr attrs)))) @@ -1193,10 +1198,8 @@ (t (unless (assq attribute face-x-resources) (setq attribute nil)))) (when attribute - (setq params (cons attribute (cons value params))))) - (setq attrs (cdr (cdr attrs)))) - (face-spec-reset-face face frame) - (apply #'set-face-attribute face frame params))) + (set-face-attribute face frame attribute value))) + (setq attrs (cdr (cdr attrs)))))) (defun face-attr-match-p (face attrs &optional frame)