diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/tagbody.tl | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/share/txr/stdlib/tagbody.tl b/share/txr/stdlib/tagbody.tl index 7d9057e6..1756fd1b 100644 --- a/share/txr/stdlib/tagbody.tl +++ b/share/txr/stdlib/tagbody.tl @@ -28,11 +28,10 @@ (when forms (let* ((tb-id (gensym "tb-id-")) (next-var (gensym "next-")) - (bblocks [partition forms (op where [orf symbolp integerp chrp])]) - (start-lbl (and (car bblocks) [[orf symbolp integerp chrp] (caar bblocks)])) - (entry-lbl (if start-lbl (caar bblocks) (gensym "entry-")))) + (bblocks (partition forms (op where [orf symbolp integerp chrp]))) + (start-lbl (if bblocks [[orf symbolp integerp chrp] (caar bblocks)]))) (unless start-lbl - (push entry-lbl (car bblocks))) + (push (gensym "entry-") (car bblocks))) (if (and (not start-lbl) (not (cdr bblocks))) ^(progn nil ,*forms nil) (let* ((lbls [mapcar car bblocks]) |