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

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

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.

`define-keymap' is new in Emacs 29.1, so I think it will be okay to
change 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)

LGTM.