X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/dce8463bb99c3a6c037b55ec99d92a68e56cae31..ca1b9b38dcf372b09028acf088f386ef09f2de84:/lisp/kmacro.el diff --git a/lisp/kmacro.el b/lisp/kmacro.el index 6f52c7cfb4..2e743b4c38 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el @@ -1,6 +1,6 @@ ;;; kmacro.el --- enhanced keyboard macros -;; Copyright (C) 2002-2014 Free Software Foundation, Inc. +;; Copyright (C) 2002-2016 Free Software Foundation, Inc. ;; Author: Kim F. Storm ;; Keywords: keyboard convenience @@ -432,7 +432,7 @@ Optional arg EMPTY is message to print if no macros are defined." (setq last-input-event nil))) (when last-input-event (clear-this-command-keys t) - (setq unread-command-events (list last-input-event)))) + (push last-input-event unread-command-events))) (defun kmacro-get-repeat-prefix () @@ -446,7 +446,7 @@ Optional arg EMPTY is message to print if no macros are defined." ;;;###autoload (defun kmacro-exec-ring-item (item arg) "Execute item ITEM from the macro ring. -ARG is the number of times to excute the item." +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))) @@ -478,12 +478,13 @@ without repeating the prefix." "Display the current head of the keyboard macro ring." (interactive) (unless (kmacro-ring-empty-p) - (kmacro-display (car (car kmacro-ring)) "2nd macro"))) + (kmacro-display (car (car kmacro-ring)) nil "2nd macro"))) (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) @@ -502,7 +503,8 @@ Displays the selected macro in the echo area." (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)) @@ -529,7 +531,8 @@ Displays the selected macro in the echo area." (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) @@ -793,7 +796,8 @@ You can bind to any valid key sequence, but if you try to bind to 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 @@ -865,7 +869,8 @@ Interactively, reads the register using `register-read-with-preview'." (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) @@ -936,7 +941,6 @@ without repeating the prefix." (defvar kmacro-step-edit-inserting) ;; inserting into macro (defvar kmacro-step-edit-appending) ;; append to end of macro (defvar kmacro-step-edit-replace) ;; replace orig macro when done -(defvar kmacro-step-edit-prefix-index) ;; index of first prefix arg key (defvar kmacro-step-edit-key-index) ;; index of current key (defvar kmacro-step-edit-action) ;; automatic action on next pre-command hook (defvar kmacro-step-edit-help) ;; kmacro step edit help enabled @@ -971,11 +975,6 @@ This keymap is an extension to the `query-replace-map', allowing the following additional answers: `insert', `insert-1', `replace', `replace-1', `append', `append-end', `act-repeat', `skip-end', `skip-keep'.") -(defvar kmacro-step-edit-prefix-commands - '(universal-argument universal-argument-more universal-argument-minus - digit-argument negative-argument) - "Commands which build up a prefix arg for the current command.") - (defun kmacro-step-edit-prompt (macro index) ;; Show step-edit prompt (let ((keys (and (not kmacro-step-edit-appending) @@ -1079,21 +1078,13 @@ following additional answers: `insert', `insert-1', `replace', `replace-1', ;; Handle prefix arg, or query user (cond (act act) ;; set above - ((memq this-command kmacro-step-edit-prefix-commands) - (unless kmacro-step-edit-prefix-index - (setq kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) - (setq act 'universal-argument)) - ((eq this-command 'universal-argument-other-key) - (setq act 'universal-argument)) (t - (kmacro-step-edit-prompt macro (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) + (kmacro-step-edit-prompt macro kmacro-step-edit-key-index) (setq act (lookup-key kmacro-step-edit-map (vector (with-current-buffer (current-buffer) (read-event)))))))) ;; Resume macro execution and perform the action (cond - ((eq act 'universal-argument) - nil) ((cond ((eq act 'act) t) @@ -1105,7 +1096,6 @@ following additional answers: `insert', `insert-1', `replace', `replace-1', (setq kmacro-step-edit-active 'ignore) nil) ((eq act 'skip) - (setq kmacro-step-edit-prefix-index nil) nil) ((eq act 'skip-keep) (setq this-command 'ignore) @@ -1118,12 +1108,11 @@ following additional answers: `insert', `insert-1', `replace', `replace-1', (setq act t) t) ((member act '(insert-1 insert)) - (setq executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) + (setq executing-kbd-macro-index kmacro-step-edit-key-index) (setq kmacro-step-edit-inserting (if (eq act 'insert-1) 1 t)) nil) ((member act '(replace-1 replace)) (setq kmacro-step-edit-inserting (if (eq act 'replace-1) 1 t)) - (setq kmacro-step-edit-prefix-index nil) (if (= executing-kbd-macro-index (length executing-kbd-macro)) (setq executing-kbd-macro (vconcat executing-kbd-macro [nil]) kmacro-step-edit-appending t)) @@ -1143,19 +1132,19 @@ following additional answers: `insert', `insert-1', `replace', `replace-1', (setq act t) t) ((eq act 'help) - (setq executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) + (setq executing-kbd-macro-index kmacro-step-edit-key-index) (setq kmacro-step-edit-help (not kmacro-step-edit-help)) nil) (t ;; Ignore unknown responses - (setq executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) + (setq executing-kbd-macro-index kmacro-step-edit-key-index) nil)) - (if (> executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) + (if (> executing-kbd-macro-index kmacro-step-edit-key-index) (setq kmacro-step-edit-new-macro (vconcat kmacro-step-edit-new-macro (substring executing-kbd-macro - (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index) - (if (eq act t) nil executing-kbd-macro-index))) - kmacro-step-edit-prefix-index nil)) + kmacro-step-edit-key-index + (if (eq act t) nil + executing-kbd-macro-index))))) (if restore-index (setq executing-kbd-macro-index restore-index))) (t @@ -1170,12 +1159,10 @@ following additional answers: `insert', `insert-1', `replace', `replace-1', (executing-kbd-macro nil) (defining-kbd-macro nil) cmd keys next-index) - (setq executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index) - kmacro-step-edit-prefix-index nil) + (setq executing-kbd-macro-index kmacro-step-edit-key-index) (kmacro-step-edit-prompt macro nil) ;; Now, we have read a key sequence from the macro, but we don't want ;; to execute it yet. So push it back and read another sequence. - (reset-this-command-lengths) (setq keys (read-key-sequence nil nil nil nil t)) (setq cmd (key-binding keys t nil)) (if (cond @@ -1196,25 +1183,12 @@ following additional answers: `insert', `insert-1', `replace', `replace-1', unread-command-events nil))) (setq cmd 'ignore) nil) - ((memq cmd kmacro-step-edit-prefix-commands) - (reset-this-command-lengths) - nil) - ((eq cmd 'universal-argument-other-key) - (setq kmacro-step-edit-action t) - (reset-this-command-lengths) - (if (numberp kmacro-step-edit-inserting) - (setq kmacro-step-edit-inserting nil)) - nil) ((numberp kmacro-step-edit-inserting) (setq kmacro-step-edit-inserting nil) nil) ((equal keys "\C-j") (setq kmacro-step-edit-inserting nil) (setq kmacro-step-edit-action nil) - ;; Forget any (partial) prefix arg from next command - (setq kmacro-step-edit-prefix-index nil) - (reset-this-command-lengths) - (setq overriding-terminal-local-map nil) (setq next-index kmacro-step-edit-key-index) t) (t nil)) @@ -1273,7 +1247,6 @@ To customize possible responses, change the \"bindings\" in `kmacro-step-edit-ma (kmacro-step-edit-inserting nil) (kmacro-step-edit-appending nil) (kmacro-step-edit-replace t) - (kmacro-step-edit-prefix-index nil) (kmacro-step-edit-key-index 0) (kmacro-step-edit-action nil) (kmacro-step-edit-help nil)