0.8.21.50:
[sbcl.git] / src / code / late-format.lisp
index a16aa5f..88ff777 100644 (file)
                 (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))
                     (push `(,(decf count)
                             ,@(expand-directive-list sublist))
                           clauses)))
-                `(case ,index ,@clauses)))))
+                `(case ,case ,@clauses)))))
      remaining)))
 
 (defun parse-conditional-directive (directives)
            (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))