emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-25 ef768c7: Cope with multiple overlapping faces.


From: Phillip Lord
Subject: [Emacs-diffs] emacs-25 ef768c7: Cope with multiple overlapping faces.
Date: Tue, 19 Jan 2016 12:49:41 +0000

branch: emacs-25
commit ef768c790ed83c8fa5c7efb24dc8e94967b5a778
Author: Phillip Lord <address@hidden>
Commit: Phillip Lord <address@hidden>

    Cope with multiple overlapping faces.
    
    * lisp/htmlfontify.el (hfy-face-to-style-i): Treat inheritance right to
      left.
      (hfy-face-resolve-face): Handle font specification as well as font
      name. Documentation update. (Bug#21990)
---
 lisp/htmlfontify.el |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index 178f3a0..fc309bd 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -999,7 +999,7 @@ merged by the user - `hfy-flatten-style' should do this."
                   (append
                    parent
                    (hfy-face-to-style-i
-                    (hfy-face-attr-for-class v hfy-display-class)) ))))
+                    (hfy-face-attr-for-class v hfy-display-class))))))
         (setq this
               (if val (case key
                        (:family         (hfy-family    val))
@@ -1018,7 +1018,7 @@ merged by the user - `hfy-flatten-style' should do this."
                        (:italic         (hfy-slant 'italic))))))
       (setq that (hfy-face-to-style-i next))
       ;;(lwarn t :warning "%S => %S" fn (nconc this that parent))
-      (nconc this that parent))) )
+      (nconc this parent that))) )
 
 (defun hfy-size-to-int (spec)
   "Convert SPEC, a CSS font-size specifier, to an Emacs :height attribute 
value.
@@ -1056,13 +1056,19 @@ haven't encountered them yet.  Returns a 
`hfy-style-assoc'."
     (nconc r (hfy-size (if x (round n) (* n 1.0)))) ))
 
 (defun hfy-face-resolve-face (fn)
+  "For FN return a face specification.
+FN may be either a face or a face specification. If the latter,
+then the specification is returned unchanged."
   (cond
    ((facep fn)
     (hfy-face-attr-for-class fn hfy-display-class))
+   ;; FIXME: is this necessary? Faces can be symbols, but
+   ;; not symbols refering to other symbols?
    ((and (symbolp fn)
          (facep (symbol-value fn)))
-    (hfy-face-attr-for-class (symbol-value fn) hfy-display-class))
-   (t nil)))
+    (hfy-face-attr-for-class
+     (symbol-value fn) hfy-display-class))
+   (t fn)))
 
 
 (defun hfy-face-to-style (fn)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]