summaryrefslogtreecommitdiff
path: root/lisp/macros.el
diff options
context:
space:
mode:
authorNoam Postavsky <npostavs@gmail.com>2019-08-23 07:55:09 -0400
committerNoam Postavsky <npostavs@gmail.com>2019-08-23 08:38:45 -0400
commitc5e3815f4989ec5ed5e4cd507305e36c95ebb420 (patch)
treee4db8923a01534033264233ea1e73adc920ed9fe /lisp/macros.el
parentf38901d431ba6dfe5dd9ebbe32f24afa16f129bd (diff)
downloademacs-c5e3815f4989ec5ed5e4cd507305e36c95ebb420.tar.gz
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).
Diffstat (limited to 'lisp/macros.el')
-rw-r--r--lisp/macros.el14
1 files changed, 7 insertions, 7 deletions
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)