0.7.13.24:
[sbcl.git] / src / code / backq.lisp
index 4c13b43..32cbdcf 100644 (file)
   (let ((*backquote-count* (1+ *backquote-count*)))
     (multiple-value-bind (flag thing)
        (backquotify stream (read stream t nil t))
-      (if (eq flag *bq-at-flag*)
-         (%reader-error stream ",@ after backquote in ~S" thing))
-      (if (eq flag *bq-dot-flag*)
-         (%reader-error stream ",. after backquote in ~S" thing))
-      (values (backquotify-1 flag thing) 'list))))
+      (when (eq flag *bq-at-flag*)
+       (%reader-error stream ",@ after backquote in ~S" thing))
+      (when (eq flag *bq-dot-flag*)
+       (%reader-error stream ",. after backquote in ~S" thing))
+      (backquotify-1 flag thing))))
 
 (/show0 "backq.lisp 64")
 
     (%reader-error stream "comma not inside a backquote"))
   (let ((c (read-char stream))
        (*backquote-count* (1- *backquote-count*)))
-    (values
-     (cond ((char= c #\@)
-           (cons *bq-at-flag* (read stream t nil t)))
-          ((char= c #\.)
-           (cons *bq-dot-flag* (read stream t nil t)))
-          (t (unread-char c stream)
-             (cons *bq-comma-flag* (read stream t nil t))))
-     'list)))
+    (cond ((char= c #\@)
+          (cons *bq-at-flag* (read stream t nil t)))
+         ((char= c #\.)
+          (cons *bq-dot-flag* (read stream t nil t)))
+         (t (unread-char c stream)
+            (cons *bq-comma-flag* (read stream t nil t))))))
 
 (/show0 "backq.lisp 83")
 
           (values 'vector (backquotify-1 dflag d))))
        (t (multiple-value-bind (aflag a) (backquotify stream (car code))
             (multiple-value-bind (dflag d) (backquotify stream (cdr code))
-              (if (eq dflag *bq-at-flag*)
-                  ;; Get the errors later.
-                  (%reader-error stream ",@ after dot in ~S" code))
-              (if (eq dflag *bq-dot-flag*)
-                  (%reader-error stream ",. after dot in ~S" code))
+              (when (eq dflag *bq-at-flag*)
+                ;; Get the errors later.
+                (%reader-error stream ",@ after dot in ~S" code))
+              (when (eq dflag *bq-dot-flag*)
+                (%reader-error stream ",. after dot in ~S" code))
               (cond
                ((eq aflag *bq-at-flag*)
                 (if (null dflag)
 ;;; Define synonyms for the lisp functions we use, so that by using
 ;;; them, the backquoted material will be recognizable to the
 ;;; pretty-printer.
-(macrolet ((def-frob (b-name name)
+(macrolet ((def (b-name name)
             (let ((args (gensym "ARGS")))
               ;; FIXME: This function should be INLINE so that the lists
               ;; aren't consed twice, but I ran into an optimizer bug the
               ;; then make these INLINE.
               `(defun ,b-name (&rest ,args)
                  (apply #',name ,args)))))
-  (def-frob backq-list list)
-  (def-frob backq-list* list*)
-  (def-frob backq-append append)
-  (def-frob backq-nconc nconc)
-  (def-frob backq-cons cons))
+  (def backq-list list)
+  (def backq-list* list*)
+  (def backq-append append)
+  (def backq-nconc nconc)
+  (def backq-cons cons))
 
 (/show0 "backq.lisp 204")