From 2e78a937413a33ac7fea0420041a1e55110f8002 Mon Sep 17 00:00:00 2001 From: Jonas Bernoulli Date: Wed, 15 Apr 2026 22:15:18 +0200 Subject: Restore compatibility with emoji.el from Emacs 29.4 Closes #417 --- CHANGELOG | 3 +++ lisp/transient.el | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 0d5f40b..705acff 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -79,6 +79,9 @@ not (primarily) concern accessibility. inconsistent state, because we did not protect all the places where that could result in an error. 8b142031, #429 +- Restored compatibility with the ~emoji.el~ that ships with Emacs + 29.4. #417 + * v0.12.0 2026-01-01 - Fixed a regression when using the ~transient-value-preset~ class, diff --git a/lisp/transient.el b/lisp/transient.el index c5393a8..25bc8f1 100644 --- a/lisp/transient.el +++ b/lisp/transient.el @@ -1652,7 +1652,12 @@ symbol property.") (transient--set-layout prefix (named-let upgrade ((spec layout)) - (cond ((vectorp spec) + (cond ((and (vectorp spec) + (length= spec 3)) + ;; This format is used by emoji.el from Emacs <= 29.4. + (pcase-let ((`[,class ,args ,children] spec)) + (vector class args (mapcar #'upgrade children)))) + ((vectorp spec) (pcase-let ((`[,level ,class ,args ,children] spec)) (when level (setq args (plist-put args :level level))) -- cgit v1.0