Correct the explanation of glyphs and glyph table.
[bpt/emacs.git] / lispref / advice.texi
index 9fe5179..3221753 100644 (file)
@@ -14,10 +14,12 @@ than redefining the whole function.
 
 @cindex piece of advice
   Each function can have multiple @dfn{pieces of advice}, separately
-defined.  Each defined piece of advice can be enabled or disabled
-explicitly.  The enabled pieces of advice for any given function
-actually take effect when you @dfn{activate} advice for that function, or when
-that function is subsequently defined or redefined.
+defined.  Each defined piece of advice can be @dfn{enabled} or
+disabled explicitly.  All the enabled pieces of advice for any given
+function actually take effect when you @dfn{activate} advice for that
+function, or when you define or redefine the function.  Note that
+enabling a piece of advice and activating advice for a function
+are not the same thing.
 
   @strong{Usage Note:} Advice is useful for altering the behavior of
 existing calls to an existing function.  If you want the new behavior
@@ -44,7 +46,8 @@ function (or a new command) which uses the existing function.
   The command @code{next-line} moves point down vertically one or more
 lines; it is the standard binding of @kbd{C-n}.  When used on the last
 line of the buffer, this command inserts a newline to create a line to
-move to (if @code{next-line-add-newlines} is non-@code{nil}).
+move to if @code{next-line-add-newlines} is non-@code{nil} (its default
+is @code{nil}.)
 
   Suppose you wanted to add a similar feature to @code{previous-line},
 which would insert a new line at the beginning of the buffer for the
@@ -190,7 +193,7 @@ function; this flag says to do so, for @var{function}, immediately after
 defining this piece of advice.
 
 @cindex forward advice
-This flag has no effect if @var{function} itself is not defined yet (a
+This flag has no immediate effect if @var{function} itself is not defined yet (a
 situation known as @dfn{forward advice}), because it is impossible to
 activate an undefined function's advice.  However, defining
 @var{function} will automatically activate its advice.
@@ -681,10 +684,11 @@ specifies the argument list for the function @code{fset}.
 @node Combined Definition
 @section The Combined Definition
 
-  Suppose that a function has @var{n} pieces of before-advice, @var{m}
-pieces of around-advice and @var{k} pieces of after-advice.  Assuming no
-piece of advice is protected, the combined definition produced to
-implement the advice for a function looks like this:
+  Suppose that a function has @var{n} pieces of before-advice
+(numbered from 0 through @var{n}@minus{}1), @var{m} pieces of
+around-advice and @var{k} pieces of after-advice.  Assuming no piece
+of advice is protected, the combined definition produced to implement
+the advice for a function looks like this:
 
 @example
 (lambda @var{arglist}
@@ -692,20 +696,20 @@ implement the advice for a function looks like this:
   (let (ad-return-value)
     @r{before-0-body-form}...
          ....
-    @r{before-@var{n}-1-body-form}...
+    @r{before-@var{n}@minus{}1-body-form}...
     @r{around-0-body-form}...
        @r{around-1-body-form}...
              ....
-          @r{around-@var{m}-1-body-form}...
+          @r{around-@var{m}@minus{}1-body-form}...
              (setq ad-return-value
                    @r{apply original definition to @var{arglist}})
-          @r{other-around-@var{m}-1-body-form}...
+          @r{end-of-around-@var{m}@minus{}1-body-form}...
              ....
-       @r{other-around-1-body-form}...
-    @r{other-around-0-body-form}...
+       @r{end-of-around-1-body-form}...
+    @r{end-of-around-0-body-form}...
     @r{after-0-body-form}...
           ....
-    @r{after-@var{k}-1-body-form}...
+    @r{after-@var{k}@minus{}1-body-form}...
     ad-return-value))
 @end example
 
@@ -714,7 +718,7 @@ the beginning of the combined definition.
 
 The interactive form is present if the original function or some piece
 of advice specifies one.  When an interactive primitive function is
-advised, a special method is used: to call the primitive with
+advised, advice uses a special method: it calls the primitive with
 @code{call-interactively} so that it will read its own arguments.
 In this case, the advice cannot access the arguments.