aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2014-09-04 11:43:06 -0400
committerStefan Monnier2014-09-04 11:43:06 -0400
commit3084e597f4586b0a075dfe3eb56f1c729406266b (patch)
tree5f73289ad3778f4612079f9a316ceaa4b7199784
parent304661b97fa538d62a2ea984db8ced66f5b852b2 (diff)
downloademacs-3084e597f4586b0a075dfe3eb56f1c729406266b.tar.gz
emacs-3084e597f4586b0a075dfe3eb56f1c729406266b.zip
* doc/lispref/functions.texi (Core Advising Primitives): Add a note about the
confusing treatment of `interactive' for :filter-args. Fixes: debbugs:18399
-rw-r--r--doc/lispref/ChangeLog5
-rw-r--r--doc/lispref/functions.texi24
2 files changed, 20 insertions, 9 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 7a88fd456d3..e8efcaa923c 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,8 @@
12014-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * functions.texi (Core Advising Primitives): Add a note about the
4 confusing treatment of `interactive' for :filter-args (bug#18399).
5
12014-08-19 Eli Zaretskii <eliz@gnu.org> 62014-08-19 Eli Zaretskii <eliz@gnu.org>
2 7
3 * display.texi (Bidirectional Display): Update the Emacs's class 8 * display.texi (Bidirectional Display): Update the Emacs's class
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 019c75ba021..a5e81547d9a 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1220,15 +1220,6 @@ ways to do it. The added function is also called an @emph{advice}.
1220This macro is the handy way to add the advice @var{function} to the function 1220This macro is the handy way to add the advice @var{function} to the function
1221stored in @var{place} (@pxref{Generalized Variables}). 1221stored in @var{place} (@pxref{Generalized Variables}).
1222 1222
1223If @var{function} is not interactive, then the combined function will inherit
1224the interactive spec, if any, of the original function. Else, the combined
1225function will be interactive and will use the interactive spec of
1226@var{function}. One exception: if the interactive spec of @var{function}
1227is a function (rather than an expression or a string), then the interactive
1228spec of the combined function will be a call to that function with as sole
1229argument the interactive spec of the original function. To interpret the spec
1230received as argument, use @code{advice-eval-interactive-spec}.
1231
1232@var{where} determines how @var{function} is composed with the 1223@var{where} determines how @var{function} is composed with the
1233existing function, e.g. whether @var{function} should be called before, or 1224existing function, e.g. whether @var{function} should be called before, or
1234after the original function. @xref{Advice combinators}, for the list of 1225after the original function. @xref{Advice combinators}, for the list of
@@ -1271,6 +1262,21 @@ original function and other advices will apply to it, whereas an outermost
1271@code{:override} advice will override not only the original function but all 1262@code{:override} advice will override not only the original function but all
1272other advices applied to it as well. 1263other advices applied to it as well.
1273@end table 1264@end table
1265
1266If @var{function} is not interactive, then the combined function will inherit
1267the interactive spec, if any, of the original function. Else, the combined
1268function will be interactive and will use the interactive spec of
1269@var{function}. One exception: if the interactive spec of @var{function}
1270is a function (rather than an expression or a string), then the interactive
1271spec of the combined function will be a call to that function with as sole
1272argument the interactive spec of the original function. To interpret the spec
1273received as argument, use @code{advice-eval-interactive-spec}.
1274
1275Note: The interactive spec of @var{function} will apply to the combined
1276function and should hence obey the calling convention of the combined function
1277rather than that of @var{function}. In many cases, it makes no difference
1278since they are identical, but it does matter for @code{:around},
1279@code{:filter-args}, and @code{filter-return}, where @var{function}.
1274@end defmac 1280@end defmac
1275 1281
1276@defmac remove-function place function 1282@defmac remove-function place function