(defun kmacro-reg-load-counter (register)
"Load the value of a REGISTER into `kmacro-counter'."
(interactive
- (list (register-read-with-preview "Load register to counter: ")))
+ (list (register-read-with-preview "Load register to counter: "
+ nil #'numberp)))
(let ((register-val (get-register register)))
(when (numberp register-val)
(setq kmacro-counter register-val))))
(defun kmacro-reg-save-counter (register)
"Save the value of `kmacro-counter' to a REGISTER."
(interactive
- (list (register-read-with-preview "Save counter to register: ")))
+ (list (register-read-with-preview "Save counter to register: "
+ (register-confirm-overwrite))))
(set-register register kmacro-counter))
(defun kmacro-reg-add-counter-equal (&optional arg)
Optional non-nil ARG specifies the increment."
(interactive "p")
(let
- ((register (register-read-with-preview "Compare counter to register: ")))
+ ((register (register-read-with-preview "Compare counter to register: "
+ nil #'numberp)))
(kmacro-reg-add-counter #'= register arg)))
(defun kmacro-reg-add-counter-less (&optional arg)
Optional non-nil ARG specifies increment."
(interactive "p")
(let
- ((register (register-read-with-preview "Compare counter to register: ")))
+ ((register (register-read-with-preview "Compare counter to register: "
+ nil #'numberp)))
(kmacro-reg-add-counter #'< register arg)))
Optional non-nil ARG specifies increment."
(interactive "p")
(let
- ((register (register-read-with-preview "Compare counter to register: ")))
+ ((register (register-read-with-preview "Compare counter to register: "
+ nil #'numberp)))
(kmacro-reg-add-counter #'> register arg)))
(defun kmacro-reg-add-counter (pred register arg)
"Increment `kmacro-counter' by ARG if PRED returns non-nil.
PRED is called with two arguments: `kmacro-counter' and REGISTER."
- (let ((register-val (get-register register)))
- (when (funcall pred kmacro-counter register-val)
- (setq current-prefix-arg nil)
- (kmacro-add-counter arg))))
+ (when (funcall pred kmacro-counter (get-register register))
+ (kmacro-add-counter arg)))
(defun kmacro-quit-counter-equal (&optional arg)
"Quit the keyboard macro if the counter is equal to ARG.
(when kmacro-initial-counter-value
(setq kmacro-counter kmacro-initial-counter-value
kmacro-initial-counter-value nil))
- (let ((arg (if (null current-prefix-arg)
- 0 arg)))
+ (let ((arg (or arg 0)))
(when (funcall pred kmacro-counter arg)
(keyboard-quit))))