;;; kmacro.el --- enhanced keyboard macros
-;; Copyright (C) 2002-2013 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2015 Free Software Foundation, Inc.
;; Author: Kim F. Storm <storm@cua.dk>
;; Keywords: keyboard convenience
;;;###autoload
(defun kmacro-exec-ring-item (item arg)
- "Execute item ITEM from the macro ring."
+ "Execute item ITEM from the macro ring.
+ARG is the number of times to execute the item."
;; Use counter and format specific to the macro on the ring!
(let ((kmacro-counter (nth 1 item))
(kmacro-counter-format-start (nth 2 item)))
(defun kmacro-cycle-ring-next (&optional _arg)
"Move to next keyboard macro in keyboard macro ring.
-Displays the selected macro in the echo area."
+Displays the selected macro in the echo area.
+The ARG parameter is unused."
(interactive)
(unless (kmacro-ring-empty-p)
(kmacro-push-ring)
(defun kmacro-cycle-ring-previous (&optional _arg)
"Move to previous keyboard macro in keyboard macro ring.
-Displays the selected macro in the echo area."
+Displays the selected macro in the echo area.
+The ARG parameter is unused."
(interactive)
(unless (kmacro-ring-empty-p)
(let ((keys (kmacro-get-repeat-prefix))
(defun kmacro-delete-ring-head (&optional _arg)
- "Delete current macro from keyboard macro ring."
+ "Delete current macro from keyboard macro ring.
+The ARG parameter is unused."
(interactive)
(unless (kmacro-ring-empty-p t)
(if (null kmacro-ring)
(if (and kmacro-call-repeat-with-arg
arg (> arg 1))
(format " %d times" arg) "")))
- ;; Can't use the `keep-pred' arg because this overlay keymap needs to be
- ;; removed during the next run of the kmacro (i.e. we need to add&remove
- ;; this overlay-map at each repetition).
- (set-temporary-overlay-map
+ ;; Can't use the `keep-pred' arg because this overlay keymap
+ ;; needs to be removed during the next run of the kmacro
+ ;; (i.e. we must add and remove this map at each repetition).
+ (set-transient-map
(let ((map (make-sparse-keymap)))
(define-key map (vector repeat-key)
`(lambda () (interactive)
a key with an existing command binding, you will be asked for
confirmation whether to replace that binding. Note that the
binding is made in the `global-map' keymap, so the macro binding
-may be shaded by a local key binding."
+may be shaded by a local key binding.
+The ARG parameter is unused."
(interactive "p")
(if (or defining-kbd-macro executing-kbd-macro)
(if defining-kbd-macro
(kmacro-call-macro current-prefix-arg nil nil k))
(defun kmacro-to-register (r)
- "Store the last keyboard macro in register R."
+ "Store the last keyboard macro in register R.
+
+Interactively, reads the register using `register-read-with-preview'."
(interactive
(progn
(or last-kbd-macro (error "No keyboard macro defined"))
- (list (read-char "Save to register: "))))
+ (list (register-read-with-preview "Save to register: "))))
(set-register r (registerv-make
last-kbd-macro
:jump-func 'kmacro-execute-from-register
(defun kmacro-view-macro (&optional _arg)
"Display the last keyboard macro.
-If repeated, it shows previous elements in the macro ring."
+If repeated, it shows previous elements in the macro ring.
+The ARG parameter is unused."
(interactive)
(cond
((or (kmacro-ring-empty-p)