changeset 66717:5271a20d9255

* 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.
author Dan Nicolaescu <dann@ics.uci.edu>
date Sat, 05 Nov 2005 07:29:45 +0000
parents 25ad3e63f2a1
children f1ce812719c6
files lisp/ChangeLog lisp/faces.el lisp/font-lock.el lisp/startup.el
diffstat 4 files changed, 45 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- 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  <dann@ics.uci.edu>
+
+	* 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  <monnier@iro.umontreal.ca>
 
 	* newcomment.el (comment-region-internal): Box more tightly in the
--- 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))
--- 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))
--- 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.