GNU bug report logs -
#64927
30.0.50; kill-ring with no X
Previous Next
Reported by: Colin Baxter <m43cap <at> yandex.com>
Date: Sat, 29 Jul 2023 09:48:02 UTC
Severity: normal
Found in version 30.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #35 received at submit <at> debbugs.gnu.org (full text, mbox):
>>>>> Bug reports for GNU Emacs, the Swiss army knife of text editors <Stefan> writes:
>>> 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.
>>
>> Not sure I understand: if key-valid-p returns nil, what do you
>> suggest to do with "keys" such as those produced in the scenario
>> of this bug report?
> I suggest we do:
> diff --git a/src/keymap.c b/src/keymap.c index
> da2af98c2d6..eec3e884935 100644 --- a/src/keymap.c +++
> b/src/keymap.c @@ -1066,7 +1066,7 @@
> possibly_translate_key_sequence (Lisp_Object key, ptrdiff_t
> *length) build_string ("`key-valid-p' is not defined, so this
> syntax can't be used: %s"), key); if (NILP (call1 (Qkey_valid_p,
> AREF (key, 0)))) - xsignal2 (Qerror, build_string ("Invalid
> `key-parse' syntax: %S"), key); + return key; key = call1
> (Qkey_parse, AREF (key, 0)); *length = CHECK_VECTOR_OR_STRING
> (key); if (*length == 0)
> With this change,
> (let ((map (make-sparse-keymap))) (define-key map ["he"]
> 'hello) map)
> returns (keymap ("he" . hello)) as before, and emits a message:
> Key sequence contains invalid event he
> whereas
> (let ((map (make-sparse-keymap))) (define-key map ["h e"]
> 'hello) map)
> returns (keymap (104 keymap (101 . hello))).
I have applied this patch and it seems to work.
1. In a test file select a region with mouse and save to kill-ring.
2. Select another region via C-<space> and save to kill-ring.
3. Paste both regions in another part of test file using mouse via
<F10> --> Edit --> Paste from kill-ring Menu
4. Success.
Colin Baxter.
This bug report was last modified 2 years and 21 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.