summaryrefslogtreecommitdiff
path: root/control-flow.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'control-flow.lisp')
-rw-r--r--control-flow.lisp13
1 files changed, 7 insertions, 6 deletions
diff --git a/control-flow.lisp b/control-flow.lisp
index 5552e96..03825be 100644
--- a/control-flow.lisp
+++ b/control-flow.lisp
@@ -114,12 +114,13 @@
(setq current-label clause
current-function (gensym))
(prog1
- `((,old-function ()
- ,@(nreverse accumulated-clauses)
- ,(if rest `#',current-function `nil))
- ,@(when (endp rest)
- `(,current-function ()
- ',end-marker)))
+ (when old-function
+ `((,old-function ()
+ ,@(nreverse accumulated-clauses)
+ #',current-function)
+ ,@(when (endp rest)
+ `((,current-function ()
+ ',end-marker)))))
(setq accumulated-clauses nil))))
(t (pushq clause accumulated-clauses)
(if (endp rest)