branch: externals/engrave-faces
commit 757ba80394c0f8d5178eb0ffda9414b89c82255d
Author: TEC <t...@tecosaur.com>
Commit: TEC <t...@tecosaur.com>

    Improve attribute-plist face handling
---
 engrave-faces.el | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 6b82605..5e65249 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -114,8 +114,12 @@ output.")
               ;; happens in invisible regions).
               (when (> (length text) 0)
                 (princ (funcall face-transformer
-                                (or (get-text-property (point) 'face)
-                                    'default)
+                                (let ((prop (get-text-property (point) 'face)))
+                                  (cond
+                                   ((null prop) 'default)
+                                   ((and (listp prop)
+                                         (eq (car prop) 'quote)) (eval prop))
+                                   ((listp prop) prop)))
                                 text)
                        engraved-buf))
               (goto-char next-change)))
@@ -135,9 +139,10 @@ output.")
                           (delq nil
                                 (delq 'unspecified
                                       (mapcar (lambda (face)
-                                                (or
-                                                 (plist-get (cdr (assoc face 
engrave-faces-preset-styles)) attr)
-                                                 (face-attribute face attr nil 
t)))
+                                                (or (plist-get (cdr (assoc 
face engrave-faces-preset-styles)) attr)
+                                                    (cond
+                                                     ((symbolp face) 
(face-attribute face attr nil t))
+                                                     ((listp face) (plist-get 
face attr)))))
                                               (delq 'default (if (listp faces) 
faces (list faces)))))))))
                  engrave-faces-attributes-of-interest)))
 

Reply via email to