summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@gnu.org>2012-04-23 11:44:13 +0800
committerChong Yidong <cyd@gnu.org>2012-04-23 11:44:13 +0800
commit775ab3953f56703789d1666bf16aa7c381edb835 (patch)
tree362715d35deb253d4e04b38e08063bc32c08be88
parent9ec7751f83254ee3bc13030b7933d1b454c33cd5 (diff)
downloademacs-775ab3953f56703789d1666bf16aa7c381edb835.tar.gz
Fix last fix.
-rw-r--r--doc/lispref/keymaps.texi43
-rw-r--r--src/keymap.c21
2 files changed, 31 insertions, 33 deletions
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index f67174b6a52..c44512b8807 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -1888,9 +1888,9 @@ maps searched are @var{keymap} and the global keymap. If @var{keymap}
is a list of keymaps, only those keymaps are searched.
Usually it's best to use @code{overriding-local-map} as the expression
-for @var{keymap}. Then @code{where-is-internal} searches precisely the
-keymaps that are active. To search only the global map, pass
-@code{(keymap)} (an empty keymap) as @var{keymap}.
+for @var{keymap}. Then @code{where-is-internal} searches precisely
+the keymaps that are active. To search only the global map, pass the
+value @code{(keymap)} (an empty keymap) as @var{keymap}.
If @var{firstonly} is @code{non-ascii}, then the value is a single
vector representing the first key sequence found, rather than a list of
@@ -1904,27 +1904,24 @@ If @var{noindirect} is non-@code{nil}, @code{where-is-internal} doesn't
follow indirect keymap bindings. This makes it possible to search for
an indirect definition itself.
-If another command @var{other-command} is remapped to @var{command}
-(@pxref{Remapping Commands}), this function searches for the bindings
-of @var{other-command} and treats them as though they are also
-bindings for @var{command}. But if the @var{no-remap} argument is
-non-@code{nil}, this function instead includes the vector @code{[remap
-@var{other-command}]} in the list of possible key sequences, without
-searching for the bindings of @var{other-command}.
+The fifth argument, @var{no-remap}, determines how this function
+treats command remappings (@pxref{Remapping Commands}). There are two
+cases of interest:
-On the other hand, if @var{command} is remapped to another command,
-this function still returns the original bindings of @var{command},
-even though those keys would actually invoke the other command. To
-determine the remapping status of @var{command}, use the function
-@code{command-remapping} (@pxref{Remapping Commands}).
-
-@smallexample
-@group
-(where-is-internal 'describe-function)
- @result{} ([8 102] [f1 102] [help 102]
- [menu-bar help-menu describe describe-function])
-@end group
-@end smallexample
+@table @asis
+@item If a command @var{other-command} is remapped to @var{command}:
+If @var{no-remap} is @code{nil}, find the bindings for
+@var{other-command} and treat them as though they are also bindings
+for @var{command}. If @var{no-remap} is non-@code{nil}, include the
+vector @code{[remap @var{other-command}]} in the list of possible key
+sequences, instead of finding those bindings.
+
+@item If @var{command} is remapped to @var{other-command}:
+If @var{no-remap} is @code{nil}, return the bindings for
+@var{other-command} rather than @var{command}. If @var{no-remap} is
+non-@code{nil}, return the bindings for @var{command}, ignoring the
+fact that it is remapped.
+@end table
@end defun
@deffn Command describe-bindings &optional prefix buffer-or-name
diff --git a/src/keymap.c b/src/keymap.c
index 3528a61d6ea..9f82175edc0 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -2569,16 +2569,17 @@ If optional 4th arg NOINDIRECT is non-nil, don't follow indirections
to other keymaps or slots. This makes it possible to search for an
indirect definition itself.
-If another command OTHER-COMMAND is remapped to DEFINITION, search for
-the bindings of OTHER-COMMAND and include them in the returned list.
-But if optional 5th arg NO-REMAP is non-nil, just include the vector
-[remap OTHER-COMMAND] in the returned list, without searching for
-those other bindings.
-
-If DEFINITION is remapped to another command, this function still
-returns its bindings, even though those key sequences actually invoke
-the other command. Use `command-remapping' to find the remapping
-status of DEFINITION. */)
+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. */)
(Lisp_Object definition, Lisp_Object keymap, Lisp_Object firstonly, Lisp_Object noindirect, Lisp_Object no_remap)
{
/* The keymaps in which to search. */