branch: externals/ement
commit 790aee7d8fdd658bd1740b5e59a5e64c3842014b
Author: Adam Porter <[email protected]>
Commit: Adam Porter <[email protected]>

    Fix: (ement-propertize) Passthrough case
    
    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.
---
 ement-macros.el | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/ement-macros.el b/ement-macros.el
index 87c10c5b74..b1e692934d 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
 

Reply via email to