summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Porter <adam@alphapapa.net>2025-11-17 19:17:48 -0600
committerAdam Porter <adam@alphapapa.net>2025-11-17 19:17:48 -0600
commit790aee7d8fdd658bd1740b5e59a5e64c3842014b (patch)
treede49bb281fe98f3810169064d3504baf1c173ebe
parente64378b8e99282a68ebc3b630fc3b0d1dcfeac8a (diff)
Fix: (ement-propertize) Passthrough caseexternals/ement
This shouldn't affect any existing uses of the macro, and since it's an internal macro, this shouldn't require a bug-fix release.
-rw-r--r--ement-macros.el31
1 files changed, 17 insertions, 14 deletions
diff --git a/ement-macros.el b/ement-macros.el
index 87c10c5..b1e6929 100644
--- a/ement-macros.el
+++ b/ement-macros.el
@@ -237,20 +237,23 @@ the same value."
;; we should preserve backward compatibility. Someday this can be removed and we'll
;; just call `propertize' again.
(declare (indent defun))
- (when (and (member ''face properties)
- (not (member ''font-lock-face properties)))
- (pcase (plist-get properties ''face #'equal)
- ((or (pred atom) `(quote ,(pred atom)))
- `(propertize ,string ,@properties
- 'font-lock-face ,(plist-get properties ''face #'equal)))
- (_
- ;; Avoid evaluating the 'face property's form twice.
- (let ((value-form (plist-get properties ''face #'equal))
- (value-var (gensym "ement-propertize-")))
- (setf (plist-get properties ''face #'equal) value-var
- (plist-get properties ''font-lock-face #'equal) value-var)
- `(let ((,value-var ,value-form))
- (propertize ,string ,@properties)))))))
+ (if (and (member ''face properties)
+ (not (member ''font-lock-face properties)))
+ (pcase (plist-get properties ''face #'equal)
+ ((or (pred atom) `(quote ,(pred atom)))
+ ;; Face property value is an atom: probably safe to just reuse the form.
+ `(propertize ,string ,@properties
+ 'font-lock-face ,(plist-get properties ''face #'equal)))
+ (_
+ ;; Not an atom: avoid evaluating the 'face property's form twice.
+ (let ((value-form (plist-get properties ''face #'equal))
+ (value-var (gensym "ement-propertize-")))
+ (setf (plist-get properties ''face #'equal) value-var
+ (plist-get properties ''font-lock-face #'equal) value-var)
+ `(let ((,value-var ,value-form))
+ (propertize ,string ,@properties)))))
+ ;; Passthrough unchanged.
+ `(propertize ,string ,@properties)))
;;;; Variables