0.8.7.46:
[sbcl.git] / src / code / primordial-extensions.lisp
index 4f25976..48be86d 100644 (file)
                         (t (illegal-varlist)))))
                (t (illegal-varlist)))))
       ;; Construct the new form.
-      (multiple-value-bind (code decls) (parse-body decls-and-code nil)
+      (multiple-value-bind (code decls)
+         (parse-body decls-and-code :doc-string-allowed nil)
        `(block ,block
           (,bind ,(nreverse r-inits)
                  ,@decls
                  (tagbody
-                  (go ,label-2)
-                  ,label-1
-                  ,@code
-                  (,step ,@(nreverse r-steps))
-                  ,label-2
-                  (unless ,(first endlist) (go ,label-1))
-                  (return-from ,block (progn ,@(rest endlist))))))))))
+                     (go ,label-2)
+                     ,label-1
+                     (tagbody ,@code)
+                     (,step ,@(nreverse r-steps))
+                     ,label-2
+                     (unless ,(first endlist) (go ,label-1))
+                     (return-from ,block (progn ,@(rest endlist))))))))))
 
 ;;; This is like DO, except it has no implicit NIL block. Each VAR is
 ;;; initialized in parallel to the value of the specified INIT form.
                  ;; check for bad lengths, the type system is needed
                  ;; for calls to CONCATENATE. So we need to make sure
                  ;; that the calls are transformed away:
-                 (1 (concatenate 'string (the simple-string (string (car things)))))
+                 (1 (concatenate 'string
+                                 (the simple-base-string (string (car things)))))
                  (2 (concatenate 'string 
-                                 (the simple-string (string (car things)))
-                                 (the simple-string (string (cadr things)))))
+                                 (the simple-base-string (string (car things)))
+                                 (the simple-base-string (string (cadr things)))))
                  (3 (concatenate 'string
-                                 (the simple-string (string (car things)))
-                                 (the simple-string (string (cadr things)))
-                                 (the simple-string (string (caddr things)))))
+                                 (the simple-base-string (string (car things)))
+                                 (the simple-base-string (string (cadr things)))
+                                 (the simple-base-string (string (caddr things)))))
                  (t (apply #'concatenate 'string (mapcar #'string things))))))
     (values (intern name)))))