]> code.delx.au - gnu-emacs/blobdiff - lispref/control.texi
(font-lock-comment-face, font-lock-doc-face, font-lock-string-face):
[gnu-emacs] / lispref / control.texi
index e2a1e26b170114365031b91b44282f29e9690db4..8dae3d464843df948a17af523224e36c0c5ab43e 100644 (file)
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003
-@c  Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c   2004, 2005 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/control
 @node Control Structures, Variables, Evaluation, Top
@@ -346,8 +346,8 @@ Here is a more realistic example of using @code{and}:
 Note that @code{(car foo)} is not executed if @code{(consp foo)} returns
 @code{nil}, thus avoiding an error.
 
-@code{and} can be expressed in terms of either @code{if} or @code{cond}.
-For example:
+@code{and} expressions can also be written using either @code{if} or
+@code{cond}.  Here's how:
 
 @example
 @group
@@ -476,11 +476,11 @@ write two common kinds of loops.
 
 @defmac dolist (var list [result]) body@dots{}
 @tindex dolist
-This construct executes @var{body} once for each element of @var{list},
-using the variable @var{var} to hold the current element.  Then it
-returns the value of evaluating @var{result}, or @code{nil} if
-@var{result} is omitted.  For example, here is how you could use
-@code{dolist} to define the @code{reverse} function:
+This construct executes @var{body} once for each element of
+@var{list}, binding the variable @var{var} locally to hold the current
+element.  Then it returns the value of evaluating @var{result}, or
+@code{nil} if @var{result} is omitted.  For example, here is how you
+could use @code{dolist} to define the @code{reverse} function:
 
 @example
 (defun reverse (list)
@@ -493,8 +493,8 @@ returns the value of evaluating @var{result}, or @code{nil} if
 @defmac dotimes (var count [result]) body@dots{}
 @tindex dotimes
 This construct executes @var{body} once for each integer from 0
-(inclusive) to @var{count} (exclusive), using the variable @var{var} to
-hold the integer for the current iteration.  Then it returns the value
+(inclusive) to @var{count} (exclusive), binding the variable @var{var}
+to the integer for the current iteration.  Then it returns the value
 of evaluating @var{result}, or @code{nil} if @var{result} is omitted.
 Here is an example of using @code{dotimes} to do something 100 times:
 
@@ -733,7 +733,7 @@ instead.  @xref{Catch and Throw}.
 @subsubsection How to Signal an Error
 @cindex signaling errors
 
-   @dfn{Signalling} an error means beginning error processing.  Error
+   @dfn{Signaling} an error means beginning error processing.  Error
 processing normally aborts all or part of the running program and
 returns to a point that is set up to handle the error
 (@pxref{Processing of Errors}).  Here we describe how to signal an
@@ -1167,7 +1167,10 @@ and their conditions.
 
   The @code{unwind-protect} construct is essential whenever you
 temporarily put a data structure in an inconsistent state; it permits
-you to make the data consistent again in the event of an error or throw.
+you to make the data consistent again in the event of an error or
+throw.  (Another more specific cleanup construct that is used only for
+changes in buffer contents is the atomic change group; @ref{Atomic
+Changes}.)
 
 @defspec unwind-protect body-form cleanup-forms@dots{}
 @cindex cleanup forms