summaryrefslogtreecommitdiff
path: root/doc/misc/cl.texi
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2014-02-02 18:58:13 -0800
committerGlenn Morris <rgm@gnu.org>2014-02-02 18:58:13 -0800
commitf16a3d523afc1a0c6bf7095f5f755ca16f8419d0 (patch)
tree2609415c9014401a789cb9b106f7d9248caa3f81 /doc/misc/cl.texi
parenteb9b8ff6af3e5339e6c051b7be13be76a52f22f4 (diff)
downloademacs-f16a3d523afc1a0c6bf7095f5f755ca16f8419d0.tar.gz
* doc/misc/cl.texi (Blocks and Exits): Mention cl-tagbody.
* etc/NEWS: Related edit.
Diffstat (limited to 'doc/misc/cl.texi')
-rw-r--r--doc/misc/cl.texi13
1 files changed, 13 insertions, 0 deletions
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index 0490cf639ac..2e3dd7434e0 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -1556,6 +1556,19 @@ Common Lisp loops like @code{cl-do} and @code{cl-dolist} implicitly enclose
themselves in @code{nil} blocks.
@end defmac
+@c FIXME? Maybe this should be in a separate section?
+@defmac cl-tagbody &rest labels-or-statements
+This macro executes statements while allowing for control transfer to
+user-defined labels. Each element of @var{labels-or-statements} can
+be either a label (an integer or a symbol), or a cons-cell
+(a statement). This distinction is made before macroexpansion.
+Statements are executed in sequence, discarding any return value.
+Any statement can transfer control at any time to the statements that follow
+one of the labels with the special form @code{(go LABEL)}.
+Labels have lexical scope and dynamic extent.
+@end defmac
+
+
@node Iteration
@section Iteration