]> git.eshelyaron.com Git - emacs.git/commitdiff
* doc/misc/cl.texi (Blocks and Exits): Mention cl-tagbody.
authorGlenn Morris <rgm@gnu.org>
Mon, 3 Feb 2014 02:58:13 +0000 (18:58 -0800)
committerGlenn Morris <rgm@gnu.org>
Mon, 3 Feb 2014 02:58:13 +0000 (18:58 -0800)
* etc/NEWS: Related edit.

doc/misc/ChangeLog
doc/misc/cl.texi
etc/NEWS

index f0ad9e709ab6693f4a18ea3c1bd7b126f3fe7a55..c64e5e695dce5e58e01b43eb1e1265eed5bbf00d 100644 (file)
@@ -1,3 +1,7 @@
+2014-02-03  Glenn Morris  <rgm@gnu.org>
+
+       * cl.texi (Blocks and Exits): Mention cl-tagbody.
+
 2014-02-02  Glenn Morris  <rgm@gnu.org>
 
        * efaq-w32.texi (Tramp ssh): Remove deleted tramp methods.
index 0490cf639ac0107e14047aa1287883e52d5cb4e1..2e3dd7434e023b907dd2391b8a0cd4d8fa268671 100644 (file)
@@ -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
 
index 21480b02cd013ed559c500f0880abd91648d5a49..cfcb74cf782ba1778e3fb0f957656d604fc5b3a5 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -424,7 +424,9 @@ For example, this enables parsing of macros that open new namespaces.
 
 ** cl-lib
 
++++
 *** New macro `cl-tagbody'.
+This executes statements while allowing for control transfer to labels.
 
 +++
 *** letf is now just an alias for cl-letf.