From: "Drew Adams" <drew.adams@oracle.com>
To: "'Andreas Schwab'" <schwab@linux-m68k.org>
Cc: 11716@debbugs.gnu.org
Subject: bug#11716: 24.1; `substitute-command-keys' does not respect `defalias'
Date: Fri, 15 Jun 2012 14:49:27 -0700 [thread overview]
Message-ID: <1BBA630250D4412081E924CE95B50D1D@us.oracle.com> (raw)
In-Reply-To: <m2wr385o33.fsf@igel.home>
> > (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?
next prev parent reply other threads:[~2012-06-15 21:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2012-09-16 23:43 ` Drew Adams
2016-04-28 15:46 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1BBA630250D4412081E924CE95B50D1D@us.oracle.com \
--to=drew.adams@oracle.com \
--cc=11716@debbugs.gnu.org \
--cc=schwab@linux-m68k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).