]> git.eshelyaron.com Git - emacs.git/commitdiff
Reverse the edmacro-parse-keys/kbd vector/string logic
authorLars Ingebrigtsen <larsi@gnus.org>
Sun, 17 Oct 2021 20:14:30 +0000 (22:14 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 17 Oct 2021 20:14:30 +0000 (22:14 +0200)
* lisp/edmacro.el (edmacro-parse-keys): Convert to a vector if
needed.
* lisp/subr.el (kbd): Remove the NEED-VECTOR parameter.

lisp/edmacro.el
lisp/subr.el

index decb8edbb1856494590fa54a21f4b838b31094d4..b3118b0aa673cb3ac0c9fdd5afe5399d0c2a83e1 100644 (file)
@@ -640,7 +640,10 @@ This function assumes that the events can be stored in a string."
 ;;; Parsing a human-readable keyboard macro.
 
 (defun edmacro-parse-keys (string &optional need-vector)
-  (kbd string need-vector))
+  (let ((result (kbd string)))
+    (if (and need-vector (stringp result))
+        (seq-into result 'vector)
+      result)))
 
 (provide 'edmacro)
 
index 1da453b30f5763129e8b82e9fbcd4e70dce9ab0c..07737e2c08f26876f35bb4bea580931d0e336b80 100644 (file)
@@ -967,18 +967,14 @@ which is
                  (throw 'exit nil)))
              t)))))
 
-(defun kbd (keys &optional need-vector)
+(defun kbd (keys)
   "Convert KEYS to the internal Emacs key representation.
 KEYS should be a string in the format returned by commands such
 as `C-h k' (`describe-key').
 This is the same format used for saving keyboard macros (see
 `edmacro-mode').
 
-For an approximate inverse of this, see `key-description'.
-
-If NEED-VECTOR is non-nil, always return a vector instead of a
-string.  This is mainly intended for use by `edmacro-parse-keys',
-and should normally not be needed."
+For an approximate inverse of this, see `key-description'."
   (declare (pure t) (side-effect-free t))
   ;; A pure function is expected to preserve the match data.
   (save-match-data
@@ -1076,15 +1072,13 @@ and should normally not be needed."
                                     (setq lres (cdr (cdr lres)))
                                     (nreverse lres)
                                     lres))))
-      (if (and (not need-vector)
-               (not (memq nil (mapcar (lambda (ch)
-                                        (and (numberp ch)
-                                             (<= 0 ch 127)))
-                                      res))))
-          (concat (mapcar (lambda (ch)
-                            (if (= (logand ch ?\M-\^@) 0)
-                                ch (+ ch 128)))
-                          res))
+      (if (not (memq nil (mapcar (lambda (ch)
+                                   (and (numberp ch)
+                                        (<= 0 ch 127)))
+                                 res)))
+          ;; Return a string.
+          (concat (mapcar #'identity res))
+        ;; Return a vector.
         res))))
 
 (defun undefined ()