diff options
author | Robert Pluim <rpluim@gmail.com> | 2023-02-24 11:12:24 +0100 |
---|---|---|
committer | Robert Pluim <rpluim@gmail.com> | 2023-02-24 11:43:08 +0100 |
commit | 573d9675fd74fc50f70b3bc64f24f838f799a8aa (patch) | |
tree | 5e52022971c75cffae1eeba4a389bb98c90bcba8 /lisp/kmacro.el | |
parent | b0cbd5590b238fa9001e3f07b7035704ef976722 (diff) | |
download | emacs-573d9675fd74fc50f70b3bc64f24f838f799a8aa.tar.gz emacs-573d9675fd74fc50f70b3bc64f24f838f799a8aa.tar.bz2 emacs-573d9675fd74fc50f70b3bc64f24f838f799a8aa.zip |
Fix insertion of keyboard macro containing named keys
* lisp/kmacro.el: Autoload `macro--string-to-vector'.
(kmacro-ring-head): Convert `last-kbd-macro' to a vector if it's a
string, since `kmacro' uses `key-parse' on it.
(kmacro-lambda-form): Remove require for 'macros
* test/lisp/kmacro-tests.el
(kmacro-tests-name-last-macro-key-parse-syntax):
Test that insertion of macros that contain strings that look
like named keys works correctly.
(Bug#61700)
Diffstat (limited to 'lisp/kmacro.el')
-rw-r--r-- | lisp/kmacro.el | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lisp/kmacro.el b/lisp/kmacro.el index 94d8794bd23..aec4b805474 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el @@ -377,10 +377,14 @@ and `kmacro-counter-format'.") (defvar kmacro-view-item-no 0) +(autoload 'macro--string-to-vector "macros") (defun kmacro-ring-head () "Return pseudo head element in macro ring." (and last-kbd-macro - (kmacro last-kbd-macro kmacro-counter kmacro-counter-format-start))) + (kmacro (if (stringp last-kbd-macro) + (macro--string-to-vector last-kbd-macro) + last-kbd-macro) + kmacro-counter kmacro-counter-format-start))) (defun kmacro-push-ring (&optional elt) @@ -841,8 +845,6 @@ KEYS should be a vector or a string that obeys `key-valid-p'." (setq mac (nth 0 mac))) (when (stringp mac) ;; `kmacro' interprets a string according to `key-parse'. - (require 'macros) - (declare-function macro--string-to-vector "macros") (setq mac (macro--string-to-vector mac))) (kmacro mac counter format))) |