From: Noam Postavsky Date: Fri, 23 Aug 2019 11:55:09 +0000 (-0400) Subject: Print macro modified macro keys as characters not integers X-Git-Tag: emacs-27.0.90~1328^2~98 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c5e3815f4989ec5ed5e4cd507305e36c95ebb420;p=emacs.git Print macro modified macro keys as characters not integers * lisp/macros.el (macros--insert-vector-macro): Pass all elements to 'prin1-char', not just those that satisfy characterp (because characters which have modifier bits set wouldn't qualify otherwise). 'prin1-char' will return nil if it can't handle the argument (e.g., for symbols representing function keys). --- diff --git a/lisp/macros.el b/lisp/macros.el index 4b38506d8a5..3470359c0ca 100644 --- a/lisp/macros.el +++ b/lisp/macros.el @@ -38,13 +38,13 @@ (defun macros--insert-vector-macro (definition) "Print DEFINITION, a vector, into the current buffer." - (dotimes (i (length definition)) - (let ((char (aref definition i))) - (insert (if (zerop i) ?\[ ?\s)) - (if (characterp char) - (princ (prin1-char char) (current-buffer)) - (prin1 char (current-buffer))))) - (insert ?\])) + (insert ?\[ + (mapconcat (lambda (event) + (or (prin1-char event) + (prin1-to-string event))) + definition + " ") + ?\])) ;;;###autoload (defun insert-kbd-macro (macroname &optional keys)