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

From: Robert Pluim <[email-masked]>
Date: Mon, 31 Oct 2022 15:25:02 +0100

>>>>> On Fri, 28 Oct 2022 08:41:37 -0700, Stefan Kangas <[email-masked]> said:

    Stefan> Robert Pluim <[email-masked]> writes:
    >> (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.

    Stefan> Hmm, that's a too high price to pay.

    Stefan> Could we check for some common mistakes without having to say `(eval
    Stefan> key)' though?  For example by requiring KEY to be

    Stefan>     (or (stringp key) (listp key))

People also do things like this:

(defcustom pong-left-key "4"
  "Alternate key to press for bat 1 to go up (primary one is [left])."
  :type '(restricted-sexp :match-alternatives (stringp vectorp)))

.

(defvar-keymap pong-mode-map
  :doc "Modemap for pong-mode."
  :name 'pong-mode-map
  pong-left-key  #'pong-move-left

so Iʼm inclined to either fix it in `define-keymap' only, or just let
the existing compiler macro for keymaps handle it.

In any case, I think we can close this particular bug.

Robert
--