X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flate-format.lisp;h=88ff77725758e1ab665781a2cf7d0f2dc346279f;hb=69ef68ba7393e3492c1b4a756d1140f71c2922bc;hp=a16aa5f68c62117daf5fe362bf6ef237843a4412;hpb=558e7ce44e6a8305474dc55adbdbc1f7119c9a5e;p=sbcl.git diff --git a/src/code/late-format.lisp b/src/code/late-format.lisp index a16aa5f..88ff777 100644 --- a/src/code/late-format.lisp +++ b/src/code/late-format.lisp @@ -792,9 +792,10 @@ (error 'format-error :complaint "must specify exactly two sections")) - (expand-bind-defaults ((index (expand-next-arg))) params + (expand-bind-defaults ((index nil)) params (setf *only-simple-args* nil) - (let ((clauses nil)) + (let ((clauses nil) + (case `(or ,index ,(expand-next-arg)))) (when last-semi-with-colon-p (push `(t ,@(expand-directive-list (pop sublists))) clauses)) @@ -803,7 +804,7 @@ (push `(,(decf count) ,@(expand-directive-list sublist)) clauses))) - `(case ,index ,@clauses))))) + `(case ,case ,@clauses))))) remaining))) (defun parse-conditional-directive (directives) @@ -836,7 +837,7 @@ (let ((*simple-args* *simple-args*)) (values (expand-directive-list sublist) *simple-args*)) - (cond ((eq *simple-args* (cdr new-args)) + (cond ((and new-args (eq *simple-args* (cdr new-args))) (setf *simple-args* new-args) `(when ,(caar new-args) ,@guts))