[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#23543: 25.1.50; Incorrect key binding echoed by `M-x'
From: |
Lars Ingebrigtsen |
Subject: |
bug#23543: 25.1.50; Incorrect key binding echoed by `M-x' |
Date: |
Sun, 28 Jul 2019 14:39:34 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
Drew Adams <drew.adams@oracle.com> writes:
> emacs -Q
>
> (define-key global-map [remap eval-last-sexp] 'pp-eval-last-sexp)
>
> Put point after a Lisp sexp somewhere, and do `M-x eval-last-sexp'.
>
> You see this echoed:
>
> You can run the command 'eval-last-sexp' with C-x C-e
>
> But that is incorrect. You cannot run `eval-last-sexp'
> using `C-x C-e', since it has been remapped to command
> `pp-eval-last-sexp'. If you use `C-x C-e' you invoke
> the latter, not `eval-last-sexp'.
I can confirm that this is still present in Emacs 27.
> The code that causes this bugged behavior is the call
> to `where-is-internal' in `execute-extended-command'.
> It does, in effect:
>
> (where-is-internal 'eval-last-sexp overriding-local-map t)
>
> And that returns [24 5]. I'm no expert on `overriding-local-map',
> but should it really be used here? Seems like this is the cause,
> but whatever the cause, the message is incorrect.
When I trace this, `overriding-local-map' is nil, and indeed:
(where-is-internal 'eval-last-sexp)
=> ([24 5])
So that doesn't seem to have anything to do with this bug, and it's just
a bug in `where-is-internal'. The doc string does talk about remapping,
but I'm not sure whether this is the same kind of remapping we have
here? In any case, it doesn't make a difference:
The optional 5th arg NO-REMAP alters how command remapping is handled:
- If another command OTHER-COMMAND is remapped to DEFINITION, normally
search for the bindings of OTHER-COMMAND and include them in the
returned list. But if NO-REMAP is non-nil, include the vector
[remap OTHER-COMMAND] in the returned list instead, without
searching for those other bindings.
- If DEFINITION is remapped to OTHER-COMMAND, normally return the
bindings for OTHER-COMMAND. But if NO-REMAP is non-nil, return the
bindings for DEFINITION instead, ignoring its remapping.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#23543: 25.1.50; Incorrect key binding echoed by `M-x',
Lars Ingebrigtsen <=