Subject: bug#58799: Make winner key sequences repeatable in repeat-mode

From: Robert Pluim <[email-masked]>
Date: Fri, 28 Oct 2022 11:36:15 +0200

>>>>> On Thu, 27 Oct 2022 09:10:12 -0700, Stefan Kangas <[email-masked]> said:

    >> diff --git a/lisp/keymap.el b/lisp/keymap.el
    >> index 107565590c..73a9e657fe 100644
    >> --- a/lisp/keymap.el
    >> +++ b/lisp/keymap.el
    >> @@ -581,6 +581,10 @@ defvar-keymap
    >> (setq key (pop defs))
    >> (pop defs)
    >> (when (not (eq key :menu))
    >> +          (when (not (key-valid-p key))
    >> +            (error
    >> +             "Invalid key '%s' in keymap '%s' (see `key-valid-p')"
    >> +             key variable-name))
    >> (if (member key seen-keys)
    >> (error "Duplicate definition for key '%s' in keymap '%s'"
    >> key variable-name)

    Stefan> LGTM.

I now think this would be a bad idea, because of the following type of
code:

    (defvar-keymap footnote-minor-mode-map
      :doc "Keymap used for binding footnote minor mode."
      (key-description footnote-prefix) footnote-mode-map)

Thatʼs perfectly valid, but fails with the above patch unless we

1. Check (key-valid-p (eval key))
2. Add an autoload cookie for footnote-minor-mode-map

That seems too high a price to pay for avoiding the original problem.

Robert
--