[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/engrave-faces e9a9b37 17/36: More face inheritance form
From: |
ELPA Syncer |
Subject: |
[elpa] externals/engrave-faces e9a9b37 17/36: More face inheritance form edge cases |
Date: |
Tue, 31 Aug 2021 01:57:26 -0400 (EDT) |
branch: externals/engrave-faces
commit e9a9b374538285bcbc07bb0c147ca4476e2ef175
Author: TEC <tec@tecosaur.com>
Commit: TEC <tec@tecosaur.com>
More face inheritance form edge cases
I /think/ it should be all sorted now.
---
engrave-faces.el | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/engrave-faces.el b/engrave-faces.el
index a6ba153..23b2562 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -36,8 +36,11 @@
;;; Code:
+(require 'map)
+
;;;###autoload
(defvar engrave-faces--backends nil)
+
;;;###autoload
(defmacro engrave-faces-define-backend (name extension face-transformer)
`(progn (add-to-list 'engrave-faces--backends
@@ -131,14 +134,18 @@ output.")
(defun engrave-faces-explicit-inheritance (faces)
"Expand :inherit for each face in FACES.
I.e. ([facea :inherit faceb] facec) results in (facea faceb facec)"
- (apply #'append (mapcar
- (lambda (face)
- (cons face
- (let ((inherit (face-attribute face :inherit nil
nil)))
- (when (and inherit (not (eq inherit
'unspecified)))
- (engrave-faces-explicit-inheritance
- (if (listp inherit) inherit (list
inherit)))))))
- faces)))
+ (delq nil
+ (mapcan
+ (lambda (face)
+ (if (listp face)
+ (let ((inherit (plist-get face :inherit)))
+ (cons (map-delete face :inherit)
+ (engrave-faces-explicit-inheritance inherit)))
+ (cons face
+ (let ((inherit (face-attribute face :inherit nil nil)))
+ (when (and inherit (not (eq inherit 'unspecified)))
+ (engrave-faces-explicit-inheritance inherit))))))
+ (if (listp faces) faces (list faces)))))
(defun engrave-faces-attribute-values (faces attribute)
"Fetch all specified instances of ATTRIBUTE for FACES, ignoring inheritence.
- [elpa] externals/engrave-faces 8b5e1fc 29/36: Move copyright to the FSF, (continued)
- [elpa] externals/engrave-faces 8b5e1fc 29/36: Move copyright to the FSF, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces 67de75f 31/36: html: allow for css classes without a :slug, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces 581b594 33/36: html: apply background & foreground color to page, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces 1d73b8e 23/36: Fix inaccurate comments, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces 4e6026e 21/36: New backend: ANSI, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces d4b95ce 16/36: Replace apply append with mapcan, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces 69f0e59 22/36: New backend: HTML, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces e22391c 35/36: latex: refactor initial \color string insertion, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces 95d25d4 36/36: minor refactor: face extraction from text property, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces 97c9ad7 25/36: When style is missing attribute, don't check face, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces e9a9b37 17/36: More face inheritance form edge cases,
ELPA Syncer <=
- [elpa] externals/engrave-faces 36320d5 34/36: Declare ansi-color-apply-on-region function, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces fdfaf14 30/36: Set the :group in defcustom statements, ELPA Syncer, 2021/08/31
- [elpa] externals/engrave-faces e063673 32/36: html: add support for weight and height, ELPA Syncer, 2021/08/31