Subject: bug#52523: 29.0.50; defcustom :type 'key-sequence not following key-valid-p format

From: Stefan Kangas <[email-masked]>
Date: Sun, 26 Dec 2021 08:39:54 -0800

Lars Ingebrigtsen <[email-masked]> writes:

>> I still see no problem with 'kbd', or even 'kbd-sequence'.
>
> The problem is that we don't use the name "kbd" anywhere in the new
> keymap functions, so it'd be confusing to use them in defcustom.

I started looking into this but noticed that the docstring for
`key-valid-p' says:

    Say whether KEYS is a valid ‘kbd’ sequence.
    A ‘kbd’ sequence is a string consisting of one and more key
    strokes.  The key strokes are separated by a space character.

I guess that docstring should be updated if we don't want to settle for
the terminology "`kbd' sequence".

However, if we do that the problem is that we then risk having two
definitions of "key sequence": both the old and the new style.

See also (info "(elisp) Key Sequences"), that uses the old style.

---

Relatedly, the `define-keymap' docstring currently says:

    Create a new keymap and define KEY/DEFINITION pairs as key sequences.

Should that say "key bindings" instead of "key sequences"?  Otherwise,
it doesn't seem clear what it does.

---

`keymap-set' says:

    Set key sequence KEY to DEFINITION in KEYMAP.

So here is again the "new" style used as the definition of a key
sequence, which seems to contradict the Elisp manual.