# HG changeset patch # User Dan Nicolaescu # Date 1131175785 0 # Node ID 5271a20d925555f42c7c8914466b203a45ff6c8b # Parent 25ad3e63f2a17a6783a9c2c4ad89b22a6e623ddb * font-lock.el: Don't deal with font-lock-face-attributes here, move the code ... * startup.el (command-line): ... here. Use face-spec-set instead of custom-declare-face. * faces.el (face-spec-set): Reset the face if spec is not nil. diff -r 25ad3e63f2a1 -r 5271a20d9255 lisp/ChangeLog --- a/lisp/ChangeLog Sat Nov 05 04:02:06 2005 +0000 +++ b/lisp/ChangeLog Sat Nov 05 07:29:45 2005 +0000 @@ -1,3 +1,13 @@ +2005-11-04 Dan Nicolaescu + + * font-lock.el: Don't deal with font-lock-face-attributes here, + move the code ... + + * startup.el (command-line): ... here. Use face-spec-set instead + of custom-declare-face. + + * faces.el (face-spec-set): Reset the face if spec is not nil. + 2005-11-04 Stefan Monnier * newcomment.el (comment-region-internal): Box more tightly in the diff -r 25ad3e63f2a1 -r 5271a20d9255 lisp/faces.el --- a/lisp/faces.el Sat Nov 05 04:02:06 2005 +0000 +++ b/lisp/faces.el Sat Nov 05 07:29:45 2005 +0000 @@ -1448,7 +1448,7 @@ do it on all frames. See `defface' for information about SPEC. If SPEC is nil, do nothing." (let ((attrs (face-spec-choose spec frame))) - (when attrs + (when spec (face-spec-reset-face face frame)) (while attrs (let ((attribute (car attrs)) diff -r 25ad3e63f2a1 -r 5271a20d9255 lisp/font-lock.el --- a/lisp/font-lock.el Sat Nov 05 04:02:06 2005 +0000 +++ b/lisp/font-lock.el Sat Nov 05 07:29:45 2005 +0000 @@ -1646,37 +1646,8 @@ ;;; Colour etc. support. -;; Originally face attributes were specified via `font-lock-face-attributes'. -;; Users then changed the default face attributes by setting that variable. -;; However, we try and be back-compatible and respect its value if set except -;; for faces where M-x customize has been used to save changes for the face. -(when (boundp 'font-lock-face-attributes) - (let ((face-attributes font-lock-face-attributes)) - (while face-attributes - (let* ((face-attribute (pop face-attributes)) - (face (car face-attribute))) - ;; Rustle up a `defface' SPEC from a `font-lock-face-attributes' entry. - (unless (get face 'saved-face) - (let ((foreground (nth 1 face-attribute)) - (background (nth 2 face-attribute)) - (bold-p (nth 3 face-attribute)) - (italic-p (nth 4 face-attribute)) - (underline-p (nth 5 face-attribute)) - face-spec) - (when foreground - (setq face-spec (cons ':foreground (cons foreground face-spec)))) - (when background - (setq face-spec (cons ':background (cons background face-spec)))) - (when bold-p - (setq face-spec (append '(:weight bold) face-spec))) - (when italic-p - (setq face-spec (append '(:slant italic) face-spec))) - (when underline-p - (setq face-spec (append '(:underline t) face-spec))) - (custom-declare-face face (list (list t face-spec)) nil))))))) - -;; But now we do it the custom way. Note that `defface' will not overwrite any -;; faces declared above via `custom-declare-face'. +;; Note that `defface' will not overwrite any faces declared above via +;; `custom-declare-face'. (defface font-lock-comment-face '((((class grayscale) (background light)) (:foreground "DimGray" :weight bold :slant italic)) diff -r 25ad3e63f2a1 -r 5271a20d9255 lisp/startup.el --- a/lisp/startup.el Sat Nov 05 04:02:06 2005 +0000 +++ b/lisp/startup.el Sat Nov 05 07:29:45 2005 +0000 @@ -958,6 +958,38 @@ (or mail-host-address (system-name))))) + ;; Originally face attributes were specified via + ;; `font-lock-face-attributes'. Users then changed the default + ;; face attributes by setting that variable. However, we try and + ;; be back-compatible and respect its value if set except for + ;; faces where M-x customize has been used to save changes for the + ;; face. + (when (boundp 'font-lock-face-attributes) + (let ((face-attributes font-lock-face-attributes)) + (while face-attributes + (let* ((face-attribute (pop face-attributes)) + (face (car face-attribute))) + ;; Rustle up a `defface' SPEC from a + ;; `font-lock-face-attributes' entry. + (unless (get face 'saved-face) + (let ((foreground (nth 1 face-attribute)) + (background (nth 2 face-attribute)) + (bold-p (nth 3 face-attribute)) + (italic-p (nth 4 face-attribute)) + (underline-p (nth 5 face-attribute)) + face-spec) + (when foreground + (setq face-spec (cons ':foreground (cons foreground face-spec)))) + (when background + (setq face-spec (cons ':background (cons background face-spec)))) + (when bold-p + (setq face-spec (append '(:weight bold) face-spec))) + (when italic-p + (setq face-spec (append '(:slant italic) face-spec))) + (when underline-p + (setq face-spec (append '(:underline t) face-spec))) + (face-spec-set face (list (list t face-spec)) nil))))))) + ;; If parameter have been changed in the init file which influence ;; face realization, clear the face cache so that new faces will ;; be realized.