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)))