unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#46290: 28.0.50; repeat's ability to repeat complex commands is broken
@ 2021-02-04  7:56 Sean Whitton
  2021-02-04  8:30 ` Gregory Heytings
  0 siblings, 1 reply; 4+ messages in thread
From: Sean Whitton @ 2021-02-04  7:56 UTC (permalink / raw)
  To: 46290

Hello,

In the definition of `repeat' there is

    (if (memq last-repeatable-command '(exit-minibuffer
                                        minibuffer-complete-and-exit
                                        self-insert-and-exit)
            (let ((repeat-command (car command-history)))
              (repeat-message "Repeating %S" repeat-command)
              (eval repeat-command))
          (if (null repeat-arg)
              (repeat-message "Repeating command %S" last-repeatable-command)
            (setq current-prefix-arg repeat-arg)
            (repeat-message
             "Repeating command %S %S" repeat-arg last-repeatable-command))
          ...)

In the "Repeating %S" branch, the idea seems to be that if the previous
command took minibuffer input, then repeat it again without prompting
for input by looking at command-history -- like typing C-x M-: RET.
Otherwise, in the "Repeating command %S" branch, just repeat what's in
last-repeatable-command.

Firstly, I note that there are some additional functions that ought to
go into the list of minibuffer-exiting functions --
read-char-from-minibuffer-insert-char and read--expression-try-read are
two I've found so far.  It's suggested in bug#5264 that this be a defvar.

But secondly, it doesn't seem like the "Repeating %S" branch works at
all.  For if you type M-! date RET C-x z then you get prompted for a
shell command, rather than date(1) just getting executed again right
away.

I added some debug printing to `repeat' and found that after M-! date
RET, last-repeatable-command is set to shell-command, not
exit-minibuffer.  So perhaps the way that last-repeatable-command gets
set has changed since this code in repeat.el was written?

Or does the "Repeating %S" branch have some completely different purpose?

Thanks!

-- 
Sean Whitton





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-02-05  9:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-04  7:56 bug#46290: 28.0.50; repeat's ability to repeat complex commands is broken Sean Whitton
2021-02-04  8:30 ` Gregory Heytings
2021-02-04 17:47   ` Sean Whitton
2021-02-05  9:06     ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).