From: Richard M. Stallman Date: Wed, 13 Aug 2003 17:19:36 +0000 (+0000) Subject: (Interactive Call): commandp has new arg. X-Git-Tag: ttn-vms-21-2-B4~9118 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=041b0e7bd7df98929d9bf3e035bc3a1da0916a30;p=emacs.git (Interactive Call): commandp has new arg. (Command Loop Info): Add this-original-command. --- diff --git a/lispref/commands.texi b/lispref/commands.texi index f749ec21d5c..d032f7caf10 100644 --- a/lispref/commands.texi +++ b/lispref/commands.texi @@ -503,7 +503,7 @@ command is a function, @code{command-execute} calls @code{call-interactively}, which reads the arguments and calls the command. You can also call these functions yourself. -@defun commandp object +@defun commandp object &optional for-call-interactively Returns @code{t} if @var{object} is suitable for calling interactively; that is, if @var{object} is a command. Otherwise, returns @code{nil}. @@ -514,11 +514,13 @@ expressions, autoload objects that are declared as interactive (non-@code{nil} fourth argument to @code{autoload}), and some of the primitive functions. -A symbol satisfies @code{commandp} if its function definition satisfies -@code{commandp}. +A symbol satisfies @code{commandp} if its function definition +satisfies @code{commandp}. Keys and keymaps are not commands. +Rather, they are used to look up commands (@pxref{Keymaps}). -Keys and keymaps are not commands. Rather, they are used to look up -commands (@pxref{Keymaps}). +If @var{for-call-interactively} is non-@code{nil}, then +@code{commandp} returns @code{t} only for objects that +@code{call-interactively} could call---thus, not for keyboard macros. See @code{documentation} in @ref{Accessing Documentation}, for a realistic example of using @code{commandp}. @@ -731,6 +733,14 @@ We do not bind @code{this-command} with @code{let} because that would restore the old value in case of error---a feature of @code{let} which in this case does precisely what we want to avoid. +@defvar this-original-command +This has the same value as @code{this-command} except when command +remapping occurs (@pxref{Remapping Commands}). In that case, +@code{this-command} gives the command actually run (the result of +remapping), and @code{this-original-command} gives the command that +was specified to run but remapped into another command. +@end defvar + @defun this-command-keys This function returns a string or vector containing the key sequence that invoked the present command, plus any previous commands that