Also require comint when loading.
[bpt/emacs.git] / lisp / cus-face.el
index de56335..c9cba58 100644 (file)
@@ -1,7 +1,7 @@
 ;;; cus-face.el --- customization support for faces
 ;;
 ;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007 Free Software Foundation, Inc.
+;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
@@ -10,7 +10,7 @@
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
     (when (fboundp 'facep)
       (unless (facep face)
        ;; If the user has already created the face, respect that.
-       (let ((value (or (get face 'saved-face) spec)))
+       (let ((value (or (get face 'saved-face) spec))
+             (have-window-system (memq initial-window-system '(x w32))))
          ;; Create global face.
          (make-empty-face face)
          ;; Create frame-local faces
          (dolist (frame (frame-list))
-           (face-spec-set face value frame)))
-       ;; When making a face after frames already exist
-       (if (memq window-system '(x w32 mac))
-           (make-face-x-resource-internal face))))
+           (face-spec-set-2 face frame value)
+           (when (memq (window-system frame) '(x w32 mac))
+             (setq have-window-system t)))
+         ;; When making a face after frames already exist
+         (if have-window-system
+             (make-face-x-resource-internal face)))))
     ;; Don't record SPEC until we see it causes no errors.
     (put face 'face-defface-spec spec)
     (push (cons 'defface face) current-load-list)
@@ -339,16 +342,17 @@ FACE's list property `theme-face' \(using `custom-push-theme')."
                (unless (facep face)
                  (make-empty-face face))
                (put face 'face-comment comment)
-               (face-spec-set face spec))
-           (setq args (cdr args)))
-       ;; Old format, a plist of FACE SPEC pairs.
-       (let ((face (nth 0 args))
-             (spec (nth 1 args)))
-         (if (get face 'face-alias)
-                 (setq face (get face 'face-alias)))
-         (put face 'saved-face spec)
-         (custom-push-theme 'theme-face face theme 'set spec))
-       (setq args (cdr (cdr args))))))))
+               (put face 'face-override-spec nil)
+               (face-spec-set face spec t))
+             (setq args (cdr args)))
+         ;; Old format, a plist of FACE SPEC pairs.
+         (let ((face (nth 0 args))
+               (spec (nth 1 args)))
+           (if (get face 'face-alias)
+               (setq face (get face 'face-alias)))
+           (put face 'saved-face spec)
+           (custom-push-theme 'theme-face face theme 'set spec))
+         (setq args (cdr (cdr args))))))))
 
 ;; XEmacs compability function.  In XEmacs, when you reset a Custom
 ;; Theme, you have to specify the theme to reset it to.  We just apply