unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#11716: 24.1; `substitute-command-keys' does not respect `defalias'
@ 2012-06-15 18:10 Drew Adams
  2012-06-15 20:15 ` Andreas Schwab
  0 siblings, 1 reply; 5+ messages in thread
From: Drew Adams @ 2012-06-15 18:10 UTC (permalink / raw)
  To: 11716

(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'
 






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#11716: 24.1; `substitute-command-keys' does not respect `defalias'
  2012-06-15 18:10 bug#11716: 24.1; `substitute-command-keys' does not respect `defalias' Drew Adams
@ 2012-06-15 20:15 ` Andreas Schwab
  2012-06-15 21:49   ` Drew Adams
  0 siblings, 1 reply; 5+ messages in thread
From: Andreas Schwab @ 2012-06-15 20:15 UTC (permalink / raw)
  To: Drew Adams; +Cc: 11716

"Drew Adams" <drew.adams@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@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#11716: 24.1; `substitute-command-keys' does not respect `defalias'
  2012-06-15 20:15 ` Andreas Schwab
@ 2012-06-15 21:49   ` Drew Adams
  2012-09-16 23:43     ` Drew Adams
  2016-04-28 15:46     ` Lars Ingebrigtsen
  0 siblings, 2 replies; 5+ messages in thread
From: Drew Adams @ 2012-06-15 21:49 UTC (permalink / raw)
  To: 'Andreas Schwab'; +Cc: 11716

> > (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?







^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#11716: 24.1; `substitute-command-keys' does not respect `defalias'
  2012-06-15 21:49   ` Drew Adams
@ 2012-09-16 23:43     ` Drew Adams
  2016-04-28 15:46     ` Lars Ingebrigtsen
  1 sibling, 0 replies; 5+ messages in thread
From: Drew Adams @ 2012-09-16 23:43 UTC (permalink / raw)
  To: 11716

ping






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#11716: 24.1; `substitute-command-keys' does not respect `defalias'
  2012-06-15 21:49   ` Drew Adams
  2012-09-16 23:43     ` Drew Adams
@ 2016-04-28 15:46     ` Lars Ingebrigtsen
  1 sibling, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2016-04-28 15:46 UTC (permalink / raw)
  To: Drew Adams; +Cc: 'Andreas Schwab', 11716

"Drew Adams" <drew.adams@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





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-04-28 15:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-15 18:10 bug#11716: 24.1; `substitute-command-keys' does not respect `defalias' Drew Adams
2012-06-15 20:15 ` Andreas Schwab
2012-06-15 21:49   ` Drew Adams
2012-09-16 23:43     ` Drew Adams
2016-04-28 15:46     ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).