Subject: bug#64927: 30.0.50; kill-ring with no X

From: Stefan Monnier <[email-masked]>
Date: Thu, 03 Aug 2023 12:30:36 -0400

>> IOW, this is a fundamental incompatibility introduced by the support for
>> this new [<KBDSTRING>] format in `define-key`: keys cannot be arbitrary
>> objects any more (among other things they can't be strings any more).
> Hmm... that's bad, isn't it?  Menus always supported strings like
> that, so we have now lost that?

Yes, tho admittedly such unconventional keys had various rough corners
(e.g. they triggered a few bugs over the years).

I think this problem was noticed when the new feature was introduced and
we fixed the generation of the kill-ring menu, but apparently nobody
fixed the problem in the second part of the code which generates the
kill-ring (I remember I mentioned at the time that we should try and
consolidate those two code paths).

> Do you see any reasonably practical way to get that back?

The best we can do is to use `key-valid-p` as a best-effort test to
decide whether we're in the presence of the new or the old format, but
it will inevitably suffer from false positives/negatives.

        Stefan