branch: elpa/helm
commit 418440c0d84bc4dcbaba26dd805c0e17398f09f4
Author: Thierry Volpiatto <thie...@posteo.net>
Commit: Thierry Volpiatto <thie...@posteo.net>

    Try to make concat kmacros compatible with both emacs 28 and 29
---
 helm-ring.el | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/helm-ring.el b/helm-ring.el
index be4b57958a..f3aa69a78d 100644
--- a/helm-ring.el
+++ b/helm-ring.el
@@ -603,20 +603,19 @@ See (info \"(emacs) Keyboard Macros\") for detailed 
infos."
     (when (cdr mkd)
       (kmacro-push-ring)
       (setq last-kbd-macro
-            (vconcat
-             (cl-loop for km in mkd
-                      for keys = (pcase km
-                                   ((pred vectorp) km)
-                                   ((and closure
-                                         (guard
-                                          (eq (oclosure-type closure)
-                                              'kmacro)))
-                                    (kmacro--keys km))
-                                   (_ (car km)))
-                      if (vectorp keys)
-                      vconcat keys into result
-                      else collect keys into result
-                      finally return result))))))
+            (cl-loop for km in mkd
+                     for keys = (pcase km
+                                  ((pred vectorp) km)
+                                  ((pred functionp) ; Ocl
+                                   (kmacro--keys km))
+                                  (_ (car km)))
+                     if (vectorp keys)
+                     vconcat keys into result
+                     else collect keys into result
+                     finally return
+                     (if (vectorp result)
+                         result
+                       (vconcat (mapcar 'string-to-char result))))))))
 
 (defun helm-kbd-macro-delete-macro (_candidate)
   (let ((mkd  (helm-marked-candidates))

Reply via email to