projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.16.8: NCONC with dx &rest lists
[sbcl.git]
/
src
/
code
/
defboot.lisp
diff --git
a/src/code/defboot.lisp
b/src/code/defboot.lisp
index
bce8766
..
16fd031
100644
(file)
--- a/
src/code/defboot.lisp
+++ b/
src/code/defboot.lisp
@@
-69,7
+69,8
@@
(defmacro-mundanely cond (&rest clauses)
(if (endp clauses)
nil
(defmacro-mundanely cond (&rest clauses)
(if (endp clauses)
nil
- (let ((clause (first clauses)))
+ (let ((clause (first clauses))
+ (more (rest clauses)))
(if (atom clause)
(error "COND clause is not a list: ~S" clause)
(let ((test (first clause))
(if (atom clause)
(error "COND clause is not a list: ~S" clause)
(let ((test (first clause))
@@
-79,10
+80,12
@@
`(let ((,n-result ,test))
(if ,n-result
,n-result
`(let ((,n-result ,test))
(if ,n-result
,n-result
- (cond ,@(rest clauses)))))
- `(if ,test
- (progn ,@forms)
- (cond ,@(rest clauses)))))))))
+ (cond ,@more))))
+ (if (eq t test)
+ `(progn ,@forms)
+ `(if ,test
+ (progn ,@forms)
+ ,(when more `(cond ,@more))))))))))
(defmacro-mundanely when (test &body forms)
#!+sb-doc
(defmacro-mundanely when (test &body forms)
#!+sb-doc