]> git.eshelyaron.com Git - emacs.git/commitdiff
faces.el fix for bug#7966.
authorGlenn Morris <rgm@gnu.org>
Tue, 8 Feb 2011 04:10:15 +0000 (20:10 -0800)
committerGlenn Morris <rgm@gnu.org>
Tue, 8 Feb 2011 04:10:15 +0000 (20:10 -0800)
* lisp/faces.el (face-attr-match-p): Handle the obsolete :bold and
:italic props, so that frame-set-background-mode works.
(Otherwise such faces were always thought to be locally modified.)

lisp/ChangeLog
lisp/faces.el

index 5d8de616108d31873508b1ae191b0633ca316f14..8f6f2ee821b097c757dc03f90995bab2216f3cd1 100644 (file)
@@ -1,3 +1,8 @@
+2011-02-08  Glenn Morris  <rgm@gnu.org>
+
+       * faces.el (face-attr-match-p): Handle the obsolete :bold and
+       :italic props, so that frame-set-background-mode works.  (Bug#7966)
+
 2011-02-07  Glenn Morris  <rgm@gnu.org>
 
        * simple.el (next-error): Doc fix.
index 4a4acefa04cb8097aa44ba44ef66ce468d73ee7f..cc1847a216418ca9188456afa767dbcc3d8c7cc9 100644 (file)
@@ -1605,13 +1605,25 @@ Optional parameter FRAME is the frame whose definition of FACE
 is used.  If nil or omitted, use the selected frame."
   (unless frame
     (setq frame (selected-frame)))
-  (let ((list face-attribute-name-alist)
-       (match t))
+  (let* ((list face-attribute-name-alist)
+        (match t)
+        (bold (and (plist-member attrs :bold)
+                   (not (plist-member attrs :weight))))
+        (italic (and (plist-member attrs :italic)
+                     (not (plist-member attrs :slant))))
+        (plist (if (or bold italic)
+                   (copy-sequence attrs)
+                 attrs)))
+    ;; Handle the Emacs 20 :bold and :italic properties.
+    (if bold
+       (plist-put plist :weight (if bold 'bold 'normal)))
+    (if italic
+       (plist-put plist :slant (if italic 'italic 'normal)))
     (while (and match (not (null list)))
       (let* ((attr (car (car list)))
             (specified-value
-             (if (plist-member attrs attr)
-                 (plist-get attrs attr)
+             (if (plist-member plist attr)
+                 (plist-get plist attr)
                'unspecified))
             (value-now (face-attribute face attr frame)))
        (setq match (equal specified-value value-now))