X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fdefboot.lisp;h=16fd031579d3eb8daeb3ce3fcf055e875c2674ec;hb=2e002dae2f9a3c64f147ca651751ed833806ad5e;hp=bce8766c27b17f47fa1a7e83f00dfcc3bb4e850e;hpb=44a9952f4d2b8146baff65bb4a8d1f898cb191eb;p=sbcl.git diff --git a/src/code/defboot.lisp b/src/code/defboot.lisp index bce8766..16fd031 100644 --- a/src/code/defboot.lisp +++ b/src/code/defboot.lisp @@ -69,7 +69,8 @@ (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)) @@ -79,10 +80,12 @@ `(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