GNU bug report logs -
#11716
24.1; `substitute-command-keys' does not respect `defalias'
Previous Next
Reported by: "Drew Adams" <drew.adams <at> oracle.com>
Date: Fri, 15 Jun 2012 18:14:01 UTC
Severity: wishlist
Tags: wontfix
Found in version 24.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 11716 in the body.
You can then email your comments to 11716 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#11716
; Package
emacs
.
(Fri, 15 Jun 2012 18:14:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
"Drew Adams" <drew.adams <at> oracle.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Fri, 15 Jun 2012 18:14:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
(defun foo () "foo" (interactive) (message "FOO"))
(defalias 'bar 'foo)
(global-set-key "\C-d" 'foo)
(substitute-command-keys "\\[bar]")
The last sexp returns "M-x bar". It should return "C-d".
(substitute-command-keys "\\[foo]") returns "C-d".
And if you do (global-set-key "\C-d" 'bar) instead then the
problem is the other way around: `M-x...' is shown for `foo'.
`substitute-command-keys' should not give the impression that
either the command or its alias is not bound to a key when, in
effect (for users), it is.
In GNU Emacs 24.1.1 (i386-mingw-nt5.1.2600)
of 2012-06-10 on MARVIN
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
`configure --with-gcc (4.6) --cflags
-ID:/devel/emacs/libs/libXpm-3.5.8/include
-ID:/devel/emacs/libs/libXpm-3.5.8/src
-ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
-ID:/devel/emacs/libs/giflib-4.1.4-1/include
-ID:/devel/emacs/libs/jpeg-6b-4/include
-ID:/devel/emacs/libs/tiff-3.8.2-1/include
-ID:/devel/emacs/libs/gnutls-3.0.9/include'
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#11716
; Package
emacs
.
(Fri, 15 Jun 2012 20:19:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 11716 <at> debbugs.gnu.org (full text, mbox):
"Drew Adams" <drew.adams <at> oracle.com> writes:
> (defun foo () "foo" (interactive) (message "FOO"))
> (defalias 'bar 'foo)
> (global-set-key "\C-d" 'foo)
> (substitute-command-keys "\\[bar]")
>
> The last sexp returns "M-x bar". It should return "C-d".
No. C-d is not bound to bar.
Andreas.
--
Andreas Schwab, schwab <at> linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#11716
; Package
emacs
.
(Fri, 15 Jun 2012 21:53:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 11716 <at> debbugs.gnu.org (full text, mbox):
> > (defun foo () "foo" (interactive) (message "FOO"))
> > (defalias 'bar 'foo)
> > (global-set-key "\C-d" 'foo)
> > (substitute-command-keys "\\[bar]")
> >
> > The last sexp returns "M-x bar". It should return "C-d".
>
> No. C-d is not bound to bar.
No what? I didn't say it was.
C-d is, _in effect_, that is, from a user perspective, bound to `bar'. It is
not bound to `bar' but the effect is that it invokes the code that `bar' runs.
`substitute-command-keys' is used most often in doc strings and such,
communicating to users what they can use to invoke particular commands etc.
It is far more useful to let a user know that s?he can use C-d than it is to
just punt and say "M-x bar".
If a programmer explicitly wants to choose "M-x bar" over letting users know
they can use C-d, s?he can use "M-x bar" and not "\\[bar]".
And yes, the user CAN use C-d, because of the binding of C-d to `foo' and the
defalias of `bar' to `foo'. What's important here is what users can do, not
whether `bar' is actually bound to C-d.
Do you have a counter use case? A typical use of `substitute-command-keys' (or
even an atypical case) where fixing this would cause a problem? A case where
the user should see a distinction between `foo' and `bar' wrt key bindings?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#11716
; Package
emacs
.
(Sun, 16 Sep 2012 23:46:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 11716 <at> debbugs.gnu.org (full text, mbox):
ping
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#11716
; Package
emacs
.
(Thu, 28 Apr 2016 15:47:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 11716 <at> debbugs.gnu.org (full text, mbox):
"Drew Adams" <drew.adams <at> oracle.com> writes:
>> > (defun foo () "foo" (interactive) (message "FOO"))
>> > (defalias 'bar 'foo)
>> > (global-set-key "\C-d" 'foo)
>> > (substitute-command-keys "\\[bar]")
>> >
>> > The last sexp returns "M-x bar". It should return "C-d".
>>
>> No. C-d is not bound to bar.
>
> No what? I didn't say it was.
>
> C-d is, _in effect_, that is, from a user perspective, bound to `bar'. It is
> not bound to `bar' but the effect is that it invokes the code that `bar' runs.
I agree with Andreas. Closing.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
Added tag(s) wontfix.
Request was from
Lars Ingebrigtsen <larsi <at> gnus.org>
to
control <at> debbugs.gnu.org
.
(Thu, 28 Apr 2016 15:47:02 GMT)
Full text and
rfc822 format available.
bug closed, send any further explanations to
11716 <at> debbugs.gnu.org and "Drew Adams" <drew.adams <at> oracle.com>
Request was from
Lars Ingebrigtsen <larsi <at> gnus.org>
to
control <at> debbugs.gnu.org
.
(Thu, 28 Apr 2016 15:47:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 27 May 2016 11:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 9 years and 24 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.