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

From: Colin Baxter <[email-masked]>
Date: Thu, 03 Aug 2023 20:55:15 +0100

>>>>> Eli Zaretskii <[email-masked]> writes:

    >> From: Colin Baxter <[email-masked]> Date: Sat, 29 Jul 2023
    >> 12:25:16 +0100
    >> 
    >>>>>>> Colin Baxter <[email-masked]> writes:
    >> 
    >> > 1. Emacs-30.0.50 compiled --with-x-toolkit=no > 2. emacs -Q
    >> <RET> > 3. C-x C-f test.txt <RET> > 4. Enter some text,
    >> e.g. "This is a test."  > 5. Enter some more text, e.g. "This is
    >> another test."  > 6. Place the cursor somewhere and press <F10> >
    >> 7. Select Edit --> Paste from kill menu --> This is test.  >
    >> 8. popup-menu: Invalid > `key-parse' syntax: %S: ["This is a
    >> test"]
    >> 
    >> Forget to mention that the text 4, 5 has of course to be copied
    >> to the kill-ring using C-<space> M-w. Sorry about that!

    > I can reproduce the same problem on a TTY frame by activating the
    > menu with F10, but not if the menu is activated with a mouse (on a
    > text-mode terminal that has a mouse).  Do you see the same problem
    > in the non-toolkit build if you use the mouse instead of the
    > keyboard?

The issue remains whether I use a mouse to mark the region or C-<space>.

    > This also affects Emacs 29, and is a regression from Emacs 28,
    > which is related to the use of the new key-* functions.
    > Specifically, the error is signaled by the call to key-valid-p
    > issued by possibly_translate_key_sequence, which is a subroutine
    > of lookup-key.  The argument KEY of
    > possibly_translate_key_sequence in this case is a vector whose
    > only element is a string with text properties:

    >   [#("create a file" 0 13 (face font-lock-comment-face fontified
    > t))]

    > key-valid-p doesn't support such strings, it expects strings that
    > describe key sequences.

    > Significantly, possibly_translate_key_sequence calls key-parse
    > after it calls key-valid-p, and key-parse copes with this string
    > quite well.  So I'm thinking of removing the key-valid-p call from
    > possibly_translate_key_sequence, since I believe key-parse can
    > detect any problems by itself?  Stefan, WDYT?

    > Colin, can you try such a change and see if it produces any
    > regressions?

I will try, but I might be out of my depth here. I've found the
"possibly_translate_key_sequence" line in keymap.c, but what part of the
c program should I then comment out and re-build?

Colin Baxter.