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

From: Robert Pluim <[email-masked]>
Date: Thu, 27 Oct 2022 18:18:37 +0200

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

    Stefan> Robert Pluim <[email-masked]> writes:
    Stefan> So we should probably make sure that the `defvar-keymap' macro errors
    Stefan> out.
    >> 
    >> Thatʼs easy enough (putting it in `define-keymap' would bring out the
    >> backwards-compatibility police, I think). Probably needs an update to
    >> the `defvar-keymap' docstring as well.

    Stefan> `define-keymap' is new in Emacs 29.1, so I think it will be okay to
    Stefan> change it.

OK. Itʼs the logical place to put it.

    >> 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.

Hmm, in light of the above, maybe the duplicate detection should be
moved to `define-keymap' as well.

Robert
--