]> git.eshelyaron.com Git - emacs.git/commitdiff
(face-documentation, set-face-attribute)
authorGlenn Morris <rgm@gnu.org>
Wed, 22 Jun 2005 14:20:18 +0000 (14:20 +0000)
committerGlenn Morris <rgm@gnu.org>
Wed, 22 Jun 2005 14:20:18 +0000 (14:20 +0000)
(face-spec-set): Handle face aliases.

lisp/faces.el

index 39c80db8d92ed68ee6c56b05fefb906f6ea62a97..0b4125dff5281b4e61838a4c35338104aab3220e 100644 (file)
@@ -513,8 +513,17 @@ Use `face-attribute' for finer control."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defun face-documentation (face)
-  "Get the documentation string for FACE."
-  (get face 'face-documentation))
+  "Get the documentation string for FACE.
+If FACE is a face-alias, get the documentation for the target face."
+  (let ((alias (get face 'face-alias))
+        doc)
+    (if alias
+        (progn
+          (setq doc (get alias 'face-documentation))
+          (format "%s is an alias for the face `%s'.%s" face alias
+                  (if doc (format "\n%s" doc)
+                    "")))
+      (get face 'face-documentation))))
 
 
 (defun set-face-documentation (face string)
@@ -661,7 +670,7 @@ like an underlying face would be, with higher priority than underlying faces."
     (setq args (purecopy args))
     ;; If we set the new-frame defaults, this face is modified outside Custom.
     (if (memq where '(0 t))
-       (put face 'face-modified t))
+       (put (or (get face 'face-alias) face) 'face-modified t))
     (while args
       (internal-set-lisp-face-attribute face (car args)
                                        (purecopy (cadr args))
@@ -1443,7 +1452,7 @@ If SPEC is nil, do nothing."
   ;; When we reset the face based on its spec, then it is unmodified
   ;; as far as Custom is concerned.
   (if (null frame)
-      (put face 'face-modified nil)))
+      (put (or (get face 'face-alias) face) 'face-modified nil)))
 
 
 (defun face-attr-match-p (face attrs &optional frame)