GNU bug report logs - #11716
24.1; `substitute-command-keys' does not respect `defalias'

Previous Next

Package: emacs;

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.

View this report as an mbox folder, status mbox, maintainer mbox


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):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: <bug-gnu-emacs <at> gnu.org>
Subject: 24.1; `substitute-command-keys' does not respect `defalias'
Date: Fri, 15 Jun 2012 11:10:14 -0700
(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):

From: Andreas Schwab <schwab <at> linux-m68k.org>
To: "Drew Adams" <drew.adams <at> oracle.com>
Cc: 11716 <at> debbugs.gnu.org
Subject: Re: bug#11716: 24.1;
	`substitute-command-keys' does not respect `defalias'
Date: Fri, 15 Jun 2012 22:15:12 +0200
"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):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: "'Andreas Schwab'" <schwab <at> linux-m68k.org>
Cc: 11716 <at> debbugs.gnu.org
Subject: RE: bug#11716: 24.1;
	`substitute-command-keys' does not respect `defalias'
Date: Fri, 15 Jun 2012 14:49:27 -0700
> > (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):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: <11716 <at> debbugs.gnu.org>
Subject: RE: bug#11716: 24.1;
	`substitute-command-keys' does not respect `defalias'
Date: Sun, 16 Sep 2012 16:43:41 -0700
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):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: "Drew Adams" <drew.adams <at> oracle.com>
Cc: 'Andreas Schwab' <schwab <at> linux-m68k.org>, 11716 <at> debbugs.gnu.org
Subject: Re: bug#11716: 24.1;
 `substitute-command-keys' does not respect `defalias'
Date: Thu, 28 Apr 2016 17:46:42 +0200
"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.